在京东云服务器(如京东云的云主机 CVM)上配置 PM2 守护进程,可以确保你的 Node.js 应用程序在后台稳定运行,并在系统重启或应用崩溃时自动重启。以下是详细步骤:
一、准备工作
-
登录京东云服务器
使用 SSH 登录到你的京东云服务器:ssh root@your-server-ip -
更新系统包(可选)
yum update -y # CentOS/RedHat # 或 apt update # Ubuntu/Debian
二、安装 Node.js 和 npm
PM2 是基于 Node.js 的进程管理器,需要先安装 Node.js。
方法一:使用 nvm 安装(推荐)
# 安装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
# 重新加载 shell 配置
source ~/.bashrc
# 安装最新 LTS 版本的 Node.js
nvm install --lts
# 检查是否安装成功
node -v
npm -v
方法二:直接安装 Node.js
以 CentOS 为例:
curl -sL https://rpm.nodesource.com/setup_lts.x | bash -
yum install -y nodejs
三、全局安装 PM2
npm install -g pm2
验证安装:
pm2 --version
四、启动你的 Node.js 应用
假设你的项目路径为 /root/myapp,入口文件是 app.js:
cd /root/myapp
pm2 start app.js --name "my-node-app"
常用命令:
pm2 list # 查看运行中的进程
pm2 logs my-node-app # 查看日志
pm2 restart my-node-app # 重启应用
pm2 stop my-node-app # 停止应用
pm2 delete my-node-app # 删除应用
五、设置 PM2 开机自启
为了让服务器重启后 PM2 自动恢复之前运行的应用,需配置开机自启。
-
生成开机启动命令
pm2 startup执行后会输出一段命令,例如:
[PM2] Init System found: systemd [PM2] To setup the Startup Script, run: sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u your_username --hp /home/your_username复制并执行它(注意替换用户名和路径)。
-
保存当前进程列表
pm2 save这样重启后 PM2 会自动拉起之前保存的应用。
六、(可选)配置反向X_X(Nginx)
如果你希望用域名访问应用,建议搭配 Nginx 反向X_X。
示例 Nginx 配置:
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://127.0.0.1:3000; # 你的 Node.js 端口
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
}
然后重启 Nginx:
systemctl restart nginx
七、安全建议
- 使用防火墙开放必要端口(如 80、443、22)。
- 避免以 root 身份长期运行应用,建议创建专用用户。
- 使用
pm2 ecosystem配置文件管理复杂应用(见下)。
八、使用 ecosystem.config.js 配置文件(高级)
在项目根目录创建 ecosystem.config.js:
module.exports = {
apps: [
{
name: 'my-node-app',
script: './app.js',
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: '1G',
env: {
NODE_ENV: 'development'
},
env_production: {
NODE_ENV: 'production'
}
}
]
};
使用方式:
pm2 start ecosystem.config.js --env production
pm2 save
总结
通过以上步骤,你已成功在京东云服务器上配置了 PM2 守护进程,实现了:
✅ Node.js 应用后台运行
✅ 崩溃自动重启
✅ 开机自启
✅ 日志管理与监控
如有问题,可通过 pm2 monit 实时监控应用状态。
如需进一步帮助,请提供你的操作系统版本和 Node.js 应用类型。
CLOUD云计算