在CentOS上部署Node.js集群可以提高應用程序的性能和可靠性。以下是一個基本的步驟指南,幫助你在CentOS上設置Node.js集群。
你可以使用NodeSource來安裝Node.js。以下是安裝Node.js 14.x的示例:
curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash -
sudo yum install -y nodejs
PM2是一個非常流行的Node.js進程管理器,可以幫助你管理和監控你的Node.js應用程序。
sudo npm install pm2 -g
假設你已經有一個Node.js應用程序,或者你可以創建一個簡單的示例應用程序。
// app.js
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello World\n');
});
server.listen(3000, () => {
console.log('Server running at http://localhost:3000/');
});
你可以使用PM2的start
命令來啟動一個集群。以下是一個示例:
pm2 start app.js -i max
-i max
參數告訴PM2根據CPU核心數來啟動相應數量的實例。
你可以進一步配置PM2集群模式,例如設置環境變量、日志管理等。
pm2 start app.js -i max --name my-app
你可以使用PM2的命令行工具來監控和管理你的集群。
# 查看所有進程
pm2 list
# 查看特定進程的詳細信息
pm2 show <app_name>
# 停止進程
pm2 stop <app_name>
# 重啟進程
pm2 restart <app_name>
# 刪除進程
pm2 delete <app_name>
為了更好地處理HTTP請求和負載均衡,你可以配置Nginx作為反向代理。
首先,安裝Nginx:
sudo yum install nginx -y
然后,編輯Nginx配置文件(通常位于/etc/nginx/nginx.conf
或/etc/nginx/conf.d/default.conf
):
http {
upstream my-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://my-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;
}
}
}
重啟Nginx以應用配置:
sudo systemctl restart nginx
通過以上步驟,你可以在CentOS上成功部署一個Node.js集群,并使用PM2進行管理和監控。Nginx作為反向代理可以進一步提高應用程序的性能和可靠性。