京东云服务器如何配置PM2守护进程?

服务器

在京东云服务器(如京东云的云主机 CVM)上配置 PM2 守护进程,主要是为了让你的 Node.js 应用在后台稳定运行,并实现自动重启、日志管理、负载均衡等功能。以下是详细的配置步骤:


✅ 一、准备工作

  1. 登录京东云服务器

    • 使用 SSH 登录你的京东云服务器:
      ssh root@your-server-ip
  2. 更新系统包(可选但推荐)

    # Ubuntu/Debian
    sudo apt update && sudo apt upgrade -y
    
    # CentOS/RHEL
    sudo yum update -y
  3. 安装 Node.js 和 npm
    推荐使用 nvm(Node Version Manager)来安装和管理 Node.js。

    # 安装 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

✅ 二、安装 PM2

npm install -g pm2

验证安装:

pm2 --version

✅ 三、启动你的 Node.js 应用

假设你的项目位于 /home/ubuntu/myapp,主文件是 app.js。

cd /home/ubuntu/myapp
pm2 start app.js --name "my-node-app"

--name 是为进程起一个别名,方便后续管理。


✅ 四、设置 PM2 开机自启

PM2 提供了开机自启动功能,避免服务器重启后应用停止。

  1. 生成启动命令

    pm2 startup

    执行后会输出一行命令,例如:

    [PM2] You have to run this command as root. Execute the following command:
        sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u your-username --hp /home/your-username
  2. 复制并执行它(带 sudo)

    sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u ubuntu --hp /home/ubuntu
  3. 保存当前进程列表

    pm2 save

这样,下次服务器重启时,PM2 会自动拉起你之前运行的应用。


✅ 五、常用 PM2 命令

命令 说明
pm2 list 查看所有运行中的进程
pm2 logs 查看实时日志
pm2 logs my-node-app 查看指定应用日志
pm2 restart my-node-app 重启应用
pm2 stop my-node-app 停止应用
pm2 delete my-node-app 删除进程(不再管理)
pm2 monit 进入监控界面

✅ 六、配置 ecosystem.config.js(推荐用于生产)

在项目根目录创建 ecosystem.config.js 文件,便于管理多应用或复杂配置。

module.exports = {
  apps: [
    {
      name: 'my-node-app',
      script: './app.js',
      instances: 1,                    // 启动实例数,0=CPU核心数
      autorestart: true,               // 自动重启
      watch: false,                    // 是否监听文件变化(生产环境建议关闭)
      max_memory_restart: '1G',        // 内存超限自动重启
      env: {
        NODE_ENV: 'development',
        PORT: 3000
      },
      env_production: {
        NODE_ENV: 'production',
        PORT: 8080
      }
    }
  ]
};

使用配置文件启动:

pm2 start ecosystem.config.js --env production

✅ 七、配合 Nginx(可选)

如果你希望通过域名访问,建议使用 Nginx 反向X_X到 Node.js 应用端口。

示例 Nginx 配置:

server {
    listen 80;
    server_name yourdomain.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        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;
    }
}

✅ 八、安全建议

  • 使用非 root 用户运行 Node.js 应用。
  • 配置防火墙(如 ufw 或安全组),只开放必要端口(如 80、443)。
  • 定期更新系统和依赖。

总结

通过以上步骤,你已经成功在京东云服务器上配置了 PM2 守护进程,确保你的 Node.js 应用:

  • 永不停机(崩溃自动重启)
  • 开机自启
  • 日志集中管理
  • 易于部署与维护

如有进一步需求(如集群模式、监控、Docker 部署),也可以扩展使用 PM2 的高级功能。

需要我帮你写一个完整的部署脚本吗?

未经允许不得转载:CDNK博客 » 京东云服务器如何配置PM2守护进程?