node app.js 运行程序有致命缺点:
pm2 reload 重启服务不会中断现有用户连接,适合线上发布。
npm install pm2 -g # 或 yarn yarn global add pm2
pm2 命令。
# 启动入口文件并命名进程 pm2 start app.js --name api-server # 执行package.json里的npm脚本 pm2 start npm --name web -- start pm2 start npm --name dev -- run dev
根目录新建 ecosystem.config.js
module.exports = {
apps: [
{
name: "backend", // 进程名
script: "./src/index.js", // 入口文件
instances: "max", // 最大CPU核心数多开
exec_mode: "cluster", // 集群模式
env: {
NODE_ENV: "production",
PORT: 3000
},
out_file: "./logs/out.log", // 普通日志
error_file: "./logs/err.log" // 错误日志
}
]
}
| 命令 | 作用 |
|---|---|
| pm2 list / pm2 ls | 列出所有托管进程 |
| pm2 restart 进程名 / ID | 重启进程 |
| pm2 reload 进程名 | 零停机重载(线上发布首选) |
| pm2 stop 进程名 | 暂停进程 |
| pm2 delete 进程名 | 从列表删除进程 |
| pm2 logs | 实时打印日志 |
| pm2 monit | 图形化监控面板 |
| pm2 save | 保存当前进程列表 |
| pm2 startup | 设置开机自启 |
| pm2 flush | 清空所有日志 |
Nginx 反向代理 + PM2 托管Node项目 + 域名SSL证书