GX博客

分享个人 Full-Stack JavaScript 项目开发经验

使用pm2管理多个应用程序的线程

使用 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 的日志管理说明,请点击这里

版权声明:

本文为博主原创文章,若需转载,须注明出处,添加原文链接。

https://leeguangxing.cn/blog_post_57.html