centos

Node.js在CentOS上如何进行分布式部署

小樊
45
2025-08-30 17:31:49
栏目: 编程语言

在CentOS上进行Node.js的分布式部署可以通过多种方式实现,以下是一个基本的步骤指南,使用PM2作为进程管理器和Nginx作为反向代理服务器来实现分布式部署。

1. 安装Node.js

首先,确保你的CentOS系统上已经安装了Node.js。你可以使用NodeSource的安装脚本来安装最新版本的Node.js。

# 添加NodeSource仓库
curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash -

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

2. 安装PM2

PM2是一个进程管理器,可以帮助你管理和监控Node.js应用程序。

# 安装PM2
sudo npm install pm2 -g

3. 配置PM2

使用PM2启动你的Node.js应用程序,并配置集群模式以实现负载均衡。

# 启动应用程序并配置为集群模式
pm2 start app.js -i max

-i max参数会根据CPU核心数自动设置工作进程的数量。

4. 配置Nginx

安装并配置Nginx作为反向代理服务器,将请求分发到不同的Node.js实例。

# 安装Nginx
sudo yum install -y nginx

# 启动Nginx
sudo systemctl start nginx
sudo systemctl enable nginx

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

http {
    upstream node_app {
        server 127.0.0.1:3000;
        server 127.0.0.1:3001;
        server 127.0.0.1:3002;
    }

    server {
        listen 80;

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

在这个配置中,upstream块定义了多个Node.js实例的地址和端口。Nginx会将请求分发到这些实例。

5. 启动Node.js应用程序

确保你的Node.js应用程序在不同的端口上运行。例如,如果你有三个实例,可以在不同的端口上启动它们:

# 启动第一个实例
PORT=3000 PM2_APP_NAME=app1 pm2 start app.js

# 启动第二个实例
PORT=3001 PM2_APP_NAME=app2 pm2 start app.js

# 启动第三个实例
PORT=3002 PM2_APP_NAME=app3 pm2 start app.js

6. 监控和管理

使用PM2来监控和管理你的Node.js应用程序。

# 查看所有进程
pm2 list

# 查看日志
pm2 logs

# 停止某个进程
pm2 stop app1

# 重启某个进程
pm2 restart app1

通过以上步骤,你可以在CentOS上实现Node.js的分布式部署。根据实际需求,你可以调整配置和扩展更多的节点。

0
看了该问题的人还看了