分享个人 Full-Stack JavaScript 项目开发经验
使用 Nginx 作为服务器的反响代理,默认开启 TLS SIN 功能,允许我们在同一台服务器上部署多个 Node.js Web 应用及其 TLS 证书。管理多个应用程序的线程,可以使用 pm2 的 Ecosystem 文件配置每个应用的行为、选项、环境变量和日志文件。
首先需要全局安装 pm2。
yarn global add pm2
在当前目录自动生成 Ecosystem 文件可以通过以下命令:
pm2 ecosystem
亦可以手动新建一个 ecosystem.config.js 文件,需要确保后缀为 .config.js。下面是一个简单配置例子:
module.exports = {
apps : [{
name: 'www.leeguangxing.cn',
script: 'C:\\server1\\bin\\www',
instances: 4,
autorestart: true,
watch: false,
max_memory_restart: '200M',
exec_mode: 'cluster'
},{
name: 'www.wxschedule.club',
script: 'C:\\server2\\app.js',
instances: 4,
autorestart: true,
watch: false,
max_memory_restart: '200M',
exec_mode: 'cluster'
},{
name: 'test',
script: 'C:\\server3\\bin\\www',
instances: 4,
autorestart: true,
watch: false,
max_memory_restart: '200M',
exec_mode: 'cluster'
}]
};
上面配置三个应用程序以集群模式启动,每个应用程序有对应的命名,实例数均为 4。还有,当实例崩溃或平稳结束、占用内存超过 200M 时自动重启,并且禁用文件修改监听自动重启。要了解更多详细配置,请点击这里。
查看所有进程列表:
pm2 list
这时可以使用 start、stop、restart、reload、delete 管理所有应用程序线程、单个应用程序线程或者单个 id 实例进程。
pm2 restart ecosystem.config.js
pm2 restart ecosystem.config.js --only www.leeguangxing.cn
pm2 restart 0
使用 Ecosystem 文件启动后,pm2 会为每个实例生成对应输出和错误日志文件。如果要清空所有运行中进程的日志文件(还包括pm2.log)内容,可以执行:
pm2 flush
要了解更多 pm2 的日志管理说明,请点击这里。