centos

CentOS Node.js 怎样实现集群部署

小樊
37
2025-08-12 15:04:04
栏目: 编程语言

在 CentOS 上实现 Node.js 应用的集群部署,可以充分利用多核 CPU 的性能,提高应用的并发处理能力。以下是使用 PM2 进行集群部署的详细步骤:

1. 安装 Node.js

首先,确保你的 CentOS 系统上已经安装了 Node.js。如果尚未安装,可以通过以下方法之一进行安装:

使用 NodeSource 仓库安装最新版本的 Node.js:

# 导入 NodeSource 仓库的 GPG 密钥
curl -sL https://rpm.nodesource.com/setup_16.x | sudo bash -

# 安装 Node.js
sudo yum install -y nodejs

注意:将 setup_16.x 替换为你需要的 Node.js 版本,例如 setup_18.x

验证安装:

node -v
npm -v

2. 安装 PM2

PM2 是一个功能强大的 Node.js 进程管理器,支持集群模式。

sudo npm install pm2 -g

3. 配置集群

假设你有一个名为 app.js 的 Node.js 应用程序,你可以使用以下命令启动一个集群:

pm2 start app.js -i max

参数说明:

4. 查看集群状态

使用以下命令查看当前运行的进程和集群状态:

pm2 status

5. 管理集群

6. 配置 PM2 启动脚本

为了让 PM2 在系统启动时自动运行你的 Node.js 应用,可以生成一个启动脚本:

pm2 startup

根据提示执行生成的命令,通常类似于:

sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u your_username --hp /home/your_username

然后保存当前的 PM2 进程列表:

pm2 save

7. 配置负载均衡

PM2 默认使用内置的负载均衡机制,将请求均匀分配到各个实例。如果你需要自定义负载均衡策略,可以在 ecosystem.config.js 文件中进行配置。

示例 ecosystem.config.js

module.exports = {
  apps: [
    {
      name: 'my-app',
      script: 'app.js',
      instances: 'max', // 或指定具体数量
      exec_mode: 'cluster',
      autorestart: true,
      watch: false,
      max_memory_restart: '1G',
      env: {
        NODE_ENV: 'development',
      },
      env_production: {
        NODE_ENV: 'production',
      },
    },
  ],
};

然后使用以下命令启动应用:

pm2 start ecosystem.config.js --env production

8. 监控和日志管理

PM2 提供了丰富的监控和日志管理功能:

9. 其他集群管理工具

除了 PM2,你还可以考虑使用其他工具进行 Node.js 集群部署,例如:

总结

使用 PM2 在 CentOS 上实现 Node.js 集群部署简单高效,具备自动重启、负载均衡、日志管理等功能,非常适合生产环境使用。根据具体需求选择合适的工具和方法,可以显著提升应用的性能和稳定性。

0
看了该问题的人还看了