4.6 框架版本项目部署
1. npm 配置
可以使用配置文件.npmrc
,设置几个常用的镜像,以加快部署速度
registry=http://registry.npm.ifeidao.com:7001
phantomjs_cdnurl=https://npm.taobao.org/mirrors/phantomjs
puppeteer_download_host=http://npm.ifeidao.com/mirrors
sharp_dist_base_url=http://npm.ifeidao.com/mirrors/sharp-libvips/v8.8.1/
package-lock=false
将该文件(.npmrc)放在执行命令的目录下即可(即log4js.json,feidao.json配置文件所在的目录).
如果使用cnpm
命令部署请添加参数,使用npm
或yarn
则无须添加任何参数
cnpm i --userconfig=./.npmrc
# or
yarn
# or
npm i
2. 部署 webserver
2.1. 部署最新 server 版本
-
准备配置文件,其中,包括
feidao.json
和log4js.json
两个配置文件其中 feidao.json 参见最新说明
log4js.json 参看官方文档
- 将这个两个文件放在服务器上某个目录下,如 /home/data/feidao/web/
-
在服务器上执行命令
cd /home/data/feidao/web/ npm i @feidao-works/${spaceid}-${type}
-
启动服务
cd /home/data/feidao/web/ ./node_modules/@dfeidao/server/startup.js
服务启动后,会在日志打印监听端口号。默认的,如果只启动一个服务实例,将使用 feidao.json 中配置的端口号,如 8889,如果该端口已经被占用,则服务会自己查找可用端口号。一般情况下,以 feidao.json 中配置的端口号为基础,不断向上加 1 进行查找可用端口号,如 8890,8891 等。
-
配置 nginx
使用 nginx 反向代理时,需要进行配置,以下为我本机进行测试时使用的配置,供参考。
location / { proxy_pass http://127.0.0.1:8889; }
如果是需要添加 2 级目录,请在反向代理时添加配置如下
location ^~ /spaceid { proxy_http_version 1.1; proxy_set_header Connection ""; proxy_hide_header X-Powered-By; proxy_pass http://127.0.0.1:8101/; if ($uri !~ \.(js|css|png|jpg|ico)$) { rewrite /spaceid/(.+)$ /$1 break; proxy_pass http://127.0.0.1:8889; } add_header Access-Control-Allow-Headers X-Requested-With,Content-Type; add_header Access-Control-Allow-Methods GET,POST,OPTIONS; add_header Access-Control-Allow-Credentials true; }
2.2. 部署 server 固定版本
-
在某种情况下,可能需要部署(或重新部署)某个特定版本,这时在服务器上执行命令
cd /home/data/feidao/web/ npm i @feidao-works/${spaceid}-${type}@${version}
即可,其它步骤与部署最新版本一致。
3. 部署 service
3.1. 部署 service 最新版本
-
准备配置文件,其中,包括
feidao.json
和log4js.json
两个配置文件其中 feidao.json 参见最新说明
log4js.json 参看官方文档
-
这里需要特别注意的是:如果启用多个nodejs服务实例,jobs有且只能有一个不配置,另外的需要配置为
"jobs":[]
这种形式,如果只有一个服务实例,则一定不要配置该项 示例:nodejs 1:
{ "redis": { "url": "redis://127.0.0.1:6379", "expiration": 3600 }, "java": "http://127.0.0.1:8080", "port": 8000, "registinterval": 15000, "max_file_size": 53687091200, "timeout": 5000, "redis": { "url": "redis://192.168.40.196:6379", "expiration": 20000 } }
nodejs 2-n:
{ "redis": { "url": "redis://127.0.0.1:6379", "expiration": 3600 }, "java": "http://127.0.0.1:8080", "port": 8000, "registinterval": 15000, "max_file_size": 53687091200, "timeout": 5000, "redis": { "url": "redis://192.168.40.196:6379", "expiration": 20000 }, "jobs":[] }
- 将这个两个文件放在服务器上某个目录下,如 /home/data/feidao/web/
-
在服务器上执行命令
cd /home/data/feidao/service/ npm i @feidao-works/${spaceid}-${type}
-
启动服务
cd /home/data/feidao/service/ ./node_modules/@dfeidao/service/service.js
3.2. 部署 service 固定版本
-
在某种情况下,可能需要部署(或重新部署)某个特定版本,这时在服务器上执行命令
cd /home/data/feidao/service/ npm i @feidao-works/${spaceid}-${type}@${version}
即可,其它步骤与部署最新版本一致。