在我们的服务器环境中有不少Nuxt应用,但是项目的配置都有问题,会导致项目部署重启的时候会不可用,提示 502 Bad Gateway
。而且启动服务的时候总会有奇怪的错误信息,而真正的错误日志又看不到。
下面直接讲正确部署与重启的姿势是怎样。
配置服务
首先我们需要在工程根目录创建一个PM2环境配置文件 ecosystem.config.js
module.exports = {
apps: [
{
name: '项目名称', // 如 ks.mbachina.com
exec_mode: 'cluster', // 启动模式,cluster为集群,无需修改
instances: 'max', // // 实例数量,max为CPU核心数,无需修改
script: './node_modules/nuxt/bin/nuxt.js', // 无需修改
args: 'start' // 启动参数,通常无需修改
}
]
}
构建工程
这里没什么特别的,本地通过 npm run build
或者通过Jenkins进行构建部署到服务器。
需要注意的点是需要将上面的 ecosystem.config.js
部署到服务器上的项目根目录。
启动服务(创建服务)
cd 工程目录 pm2 start
执行上面的命令之后就会自动创建出pm2服务了。
重启服务(不停机重启)
pm2 reload $项目名称
将上面命令的 $项目名称
替换为在ecosystem.config.js
中配置的实际项目名称即可。
注意这里用的是reload命令,不要用restart命令。
再次提示,更新代码后只需要执行reload命令即可,不需要先stop、delete再start。
参考:https://nuxtjs.org/docs/2.x/deployment/deployment-pm2
Read: 224