温馨提示×

CentOS怎样搭建Nodejs集群

小樊
44
2026-08-18 14:44:40
栏目: 编程语言

CentOS 上搭建 Node.js 集群,常见有 三种层级 的做法,从简单到生产级逐步升级。下面按 实战推荐顺序 给你讲清楚。


一、Node.js 内置 cluster 模块(应用级集群)

适合:单台 CentOS 服务器,充分利用多核 CPU

1️⃣ 安装 Node.js(推荐使用 nvm)

# 安装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc

# 安装 Node.js LTS
nvm install --lts
node -v

2️⃣ 使用 cluster 模块搭建集群

示例:cluster.js

const cluster = require('cluster');
const http = require('http');
const os = require('os');

if (cluster.isMaster) {
  const numCPUs = os.cpus().length;
  console.log(`Master ${process.pid} is running`);

  for (let i = 0; i < numCPUs; i++) {
    cluster.fork();
  }

  cluster.on('exit', (worker) => {
    console.log(`Worker ${worker.process.pid} died, restarting...`);
    cluster.fork();
  });
} else {
  http.createServer((req, res) => {
    res.writeHead(200);
    res.end(`Handled by worker ${process.pid}\n`);
  }).listen(3000);

  console.log(`Worker ${process.pid} started`);
}

启动:

node cluster.js

✅ 特点

  • 自动利用多核
  • 进程崩溃自动重启
  • 无需额外依赖

二、PM2 管理 Node.js 集群(强烈推荐)

适合:生产环境、自动重启、进程管理

1️⃣ 安装 PM2

npm install -g pm2

2️⃣ 启动 Node.js 集群

pm2 start app.js -i max

-i max 表示 CPU 核数 = worker 数

查看状态:

pm2 list
pm2 logs

3️⃣ 开机自启(CentOS 7+)

pm2 startup
pm2 save

✅ 优点

  • 自动负载均衡
  • 崩溃重启
  • 日志管理
  • 一键部署

三、Nginx + 多 Node 实例(多机或单机生产方案)

适合:高并发、反向代理、SSL、负载均衡

1️⃣ 启动多个 Node 实例

pm2 start app.js -i 4

假设端口:

3001, 3002, 3003, 3004

2️⃣ 安装 Nginx

yum install -y nginx
systemctl start nginx
systemctl enable nginx

3️⃣ 配置 Nginx 反向代理

编辑:

vim /etc/nginx/conf.d/node.conf
upstream node_cluster {
    server 127.0.0.1:3001;
    server 127.0.0.1:3002;
    server 127.0.0.1:3003;
    server 127.0.0.1:3004;
}

server {
    listen 80;
    server_name yourdomain.com;

    location / {
        proxy_pass http://node_cluster;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
    }
}

重载:

nginx -t
systemctl reload nginx

四、三种方案对比

方案 场景 复杂度 推荐度
cluster 单机多核 ⭐⭐⭐
PM2 生产环境 ⭐⭐⭐⭐⭐
Nginx + Node 高并发 / 多机 ⭐⭐⭐⭐

五、安全 & 优化建议(CentOS)

# 防火墙放行
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --reload

# 使用非 root 用户运行 Node
useradd nodeuser
su - nodeuser

六、你可以继续深入的方面

  • ✅ 多台 CentOS 组成 Node 集群
  • ✅ Docker + CentOS + Node 集群
  • ✅ Kubernetes 管理 Node
  • ✅ 会话共享(Redis)
  • ✅ WebSocket 集群方案

如果你愿意,我可以 直接帮你设计一套“CentOS + Node.js + PM2 + Nginx”生产级部署方案

0