什么是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服务。