centos

Node.js 在 CentOS 中如何实现集群部署

小樊
47
2025-04-30 19:13:19
栏目: 编程语言

在 CentOS 上使用 Node.js 实现集群部署可以通过多种方式来完成,其中最常见的是使用 Node.js 内置的 cluster 模块。以下是一个基本的步骤指南:

1. 安装 Node.js

首先,确保你已经在 CentOS 上安装了 Node.js。你可以使用以下命令来安装:

sudo yum install -y nodejs npm

2. 创建一个简单的 Node.js 应用

创建一个简单的 Node.js 应用程序,例如 app.js

const http = require('http');
const cluster = require('cluster');
const numCPUs = require('os').cpus().length;

if (cluster.isMaster) {
  console.log(`Master ${process.pid} is running`);

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

  cluster.on('exit', (worker, code, signal) => {
    console.log(`worker ${worker.process.pid} died`);
  });
} else {
  // Workers can share any TCP connection
  // In this case it is an HTTP server
  http.createServer((req, res) => {
    res.writeHead(200);
    res.end('hello world\n');
  }).listen(8000);

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

3. 启动集群

使用 node 命令启动你的应用程序:

node app.js

4. 使用 PM2 进行集群管理

PM2 是一个非常流行的 Node.js 进程管理工具,可以简化集群管理和部署。首先,全局安装 PM2:

sudo npm install pm2 -g

然后,使用 PM2 启动你的应用程序:

pm2 start app.js -i max

-i max 参数会根据 CPU 核心数自动启动相应数量的进程。

5. 监控和管理

PM2 提供了丰富的命令来监控和管理你的 Node.js 应用程序:

6. 配置 Nginx 反向代理

为了更好地处理静态文件和负载均衡,你可以配置 Nginx 作为反向代理。首先,安装 Nginx:

sudo yum install -y nginx

然后,编辑 Nginx 配置文件(通常位于 /etc/nginx/nginx.conf/etc/nginx/conf.d/default.conf),添加以下内容:

http {
  upstream myapp {
    server 127.0.0.1:8000;
    server 127.0.0.1:8001;
    server 127.0.0.1:8002;
  }

  server {
    listen 80;

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

最后,重启 Nginx:

sudo systemctl restart nginx

通过以上步骤,你可以在 CentOS 上使用 Node.js 实现集群部署,并使用 PM2 和 Nginx 进行管理和负载均衡。

0
看了该问题的人还看了