前言
现在公司项目本地使用node实现前后端分离,服务器使用的是 nginx + tomcat 的部署方式。实际上前后端分离的技术完全可以用在node部署上。
本地准备
本地只需要准备下面几个文件:
1)网站的静态资源文件:包括html、js、css、图片等资源。static和view的目录结构参考上图左侧,如果你的网站目录结构不同,只需要在server.js文件中重新配置下路由;2)package.json:既然使用node部署,那肯定会用到node的一些模块和框架,比如path和express。这个json文件用于记录node依赖的模块和框架,内容如下:
{
"name": "app-server",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.16.3",
"path": "^0.12.7"
}
}
复制代码
3)server.js: 主要文件,用于搭建node服务端,内容如下:
// 依赖项
var express = require('express');
var app = express();
var path = require('path');
// 设置登录页和主页访问路径
app.get('/index', function (req, res) {
res.sendFile(__dirname + '/' + 'view/html/index.html');
});
app.get('/login', function (req, res) {
res.sendFile(__dirname + '/' + 'view/html/login.html');
});
app.get('/', function (req, res) {
res.sendFile(__dirname + '/' + 'view/html/login.html');
});
// 托管静态文件
app.use('/static', express.static(path.join(__dirname, 'static')));
app.use('/view', express.static(path.join(__dirname, 'view')));
// 生成服务器并监听
var server = app.listen(8080,'localhost',function () {//(3.2.3)
var host = server.address().address
var port = server.address().port
console.log('应用实例,访问地址为 http://%s:%s', host, port)
});
复制代码
上面代码主要干了两件事:路由控制和搭建服务器。
开始部署
1)拷文件
- 登录你的服务器(我的服务器是window系统)
- 把上面的本地文件拷到服务器的
C:\Home
目录下
2)安装node和nginx
nginx-1.15.3 安装文件: pan.baidu.com/s/17H-S-zdF… 提取码: p3ks 下载后我是放在服务器c盘根目录下。
node v8.11.2 安装文件: pan.baidu.com/s/17H-S-zdF… 提取码: p3ks 下载后在服务器安装,安装时的选项都选择默认,会自动配好环境变量。
3)配置node和nginx
- 启动node服务:打开cmd,进去
C:\Home\web\
路径下,先后执行npm install
安装依赖和node server.js
启动服务,看到下面的信息表示启动成功,注意不要关闭这个cmd窗口:
- 启动nginx:
- 修改nginx配置文件(如果你的nginx是从分享的网盘下的,那可以省略这一步)打开
C:\nginx-1.15.3\conf\nginx.conf
文件,找到server节点,修改配置: - 再打开一个cmd,进入到
C:\nginx-1.15.3\
路径下,执行start nginx.exe
,如下所示,如果没报什么错误的话表示启动nginx成功。
4)部署完成,可以开始使用外网访问你部署的网站了。
这里是登录页
这里是主页