版本/运行环境
1.node版本:v4.4.1
2.操作系统 CentOS 6.4
部署路径
Node: /data/node
解压`node-server.zip`和`resources.zip`到该目录下
相关命令参考
> cd /data/node
> wget http://maven.meizu.com:8081/artifactory/libs-release-local/com/meizu/bs/node/1.0.0-RC05/node-1.0.0-RC05-resources.zip
> wget http://maven.meizu.com:8081/artifactory/libs-release-local/com/meizu/bs/node/1.0.0-RC05/node-1.0.0-RC05-resources.zip
> unzip -qo node-1.0.0-RC05-resources.zip
> rm -rf node-1.0.0-RC05-resources.zip
node安装
下载 node(使用 v4.x 长期支持的稳定版本):
wget http://nodejs.org/dist/v0.10.33/node-v0.10.33-linux-x64.tar.gz
解压到 /data/node:
vi /etc/profile
添加:
export NODE_HOME=/data/node/node-v4.4.1-linux-x64
export PATH=$PATH:$NODE_HOME/bin
export NODE_PATH=$NODE_HOME/lib/node_modules
让修改生效:
source /etc/profile
测试
node -v
设置默认从淘宝仓库安装依赖包
npm config set registry [https://registry.npm.taobao.org](https://registry.npm.taobao.org/)
npm config set disturl [https://npm.taobao.org/dist](https://npm.taobao.org/dist)
依赖组件
node安装完后会集成npm包管理工具,安装依赖的组件:
npm install -g express@3.4.0
npm install -g ejs@1.0.0
如果是内网项目没有访问外网的权限,可以加上公司内部的私有仓库
npm install -g express@3.4.0 --registry [http://172.16.16.135:7001](http://172.16.16.135:7001/)
npm install -g ejs@1.0.0 --registry [http://172.16.16.135:7001](http://172.16.16.135:7001/)
npm install -g pm2 --registry [http://172.16.16.135:7001](http://172.16.16.135:7001/)
pm2安装:
pm2是node的一个进程管理工具,进行启动、重启、关闭,还可以输出日志,保护进程等等。
npm install -g pm2
如果报错提示 add the --unsafe-perm flag
.
使用npm install -g pm2 --unsafe-perm
安装。
pm2 -v
显示版本信息,表示安装成功
相关命令参考:
启动:pm2 start /data/node/node-server/orion/start.js -i 8 --name orion &
停止:pm2 kill
重启:pm2 restart orion
查看:pm2 list 或 pm2 info orion
Nginx 配置参考:
#127.0.0.1替换成项目的域名,没有域名用服务器IP
# 请求都转到node的1337端口上
location / {
proxy_set_header X - Forwarded - For $proxy_add_x_forwarded_for;
proxy_set_header X - Real - IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http: //127.0.0.1:1337;
}
# 静态资源
# 带CDN的项目无需在这里配置, 在静态资源的nginx配置就好
# 不带CDN的后台管理项目配置如下
location / resources {
alias / data / node / resources;
}
# 后台API请求区别对待转到jetty的8080端口上
location / service {
proxy_store off;
proxy_redirect off;
proxy_set_header X - Forwarded - For $proxy_add_x_forwarded_for;
proxy_set_header X - Real - IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http: //127.0.0.1:8080/service
}
Jetty: 端口设置为8080
Node启动
cd /data/node/node-server/项目名
pm2 start start.js -i max
日志所在目录:/root/.pm2/logs
max为cpu的核数
QA:
按如上配置环境,发现express,ejs缺失,直接更新如是npm install express/ejs 然后就出现了下面这个Error
Error: Most middleware (like bodyParser) is no longer bundled with Express and must be installed separately.
Please see https://github.com/senchalabs/connect(https://github.com/senchalabs/connect)#middleware.
这个是由于express版本不对引起的 可以指定版本安装
npm install express@3.4.0
npm install ejs@1.0.0