Node.js 部署实战:PM2 进程管理完全指南

什么是PM2?

PM2是Node.js的进程管理器,能让你的Node应用始终保持运行,即使崩溃也会自动重启。

安装PM2

npm install -g pm2

基本使用

# 启动应用
pm2 start app.js
pm2 start app.js --name myapp

# 查看状态
pm2 list
pm2 status

# 查看日志
pm2 logs
pm2 logs myapp --lines 100

# 重启应用
pm2 restart myapp
pm2 restart all

# 停止/删除
pm2 stop myapp
pm2 delete myapp

生产环境部署

1. 使用配置文件(ecosystem.config.js)

module.exports = {
  apps: [{
    name: 'myapp',
    script: 'server.js',
    instances: 2,           // 集群模式,2个实例
    exec_mode: 'cluster',
    watch: false,
    max_memory_restart: '200M',
    env: {
      NODE_ENV: 'production',
      PORT: 3000
    },
    error_file: '/var/log/myapp-error.log',
    out_file: '/var/log/myapp-out.log'
  }]
};

2. 启动

pm2 start ecosystem.config.js

3. 开机自启动

pm2 save
pm2 startup

常用运维命令

# 监控界面
pm2 monit

# 查看CPU/内存
pm2 show myapp

# 重新加载配置
pm2 reload ecosystem.config.js

# 清空日志
pm2 flush

# 查看详细状态
pm2 describe myapp

部署流程

本地开发 → 推代码到服务器 → npm install → pm2 restart myapp

结合Nginx

PM2负责运行Node应用,Nginx负责对外服务:

server {
    listen 80;
    server_name example.com;
    
    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

总结

PM2让Node.js应用部署和管理变得简单可靠。配合Nginx,可以轻松构建高可用的Web服务。