在CentOS中,可以使用Nginx或HAProxy作為負載均衡器來實現Node.js應用程序的負載均衡。以下是使用這兩種方法的簡要步驟:
方法1:使用Nginx作為負載均衡器
sudo yum install epel-release
sudo yum install nginx
sudo systemctl start nginx
sudo systemctl enable nginx
/etc/nginx/conf.d/nodejs_app.conf
,并添加以下內容:http {
upstream nodejs_app {
server 192.168.1.1:3000;
server 192.168.1.2:3000;
server 192.168.1.3:3000;
}
server {
listen 80;
location / {
proxy_pass http://nodejs_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;
}
}
}
在這個配置文件中,我們定義了一個名為nodejs_app
的上游服務器組,其中包含了三個Node.js應用程序實例。然后,我們創建了一個HTTP服務器,將所有傳入的請求代理到nodejs_app
。
sudo nginx -t
sudo systemctl reload nginx
現在,Nginx將作為負載均衡器,將請求分發到三個Node.js應用程序實例。
方法2:使用HAProxy作為負載均衡器
sudo yum install epel-release
sudo yum install haproxy
sudo systemctl start haproxy
sudo systemctl enable haproxy
/etc/haproxy/haproxy.cfg
,并添加以下內容:global
log /dev/log local0
log /dev/log local1 notice
daemon
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
frontend http_front
bind *:80
stats uri /haproxy?stats
default_backend http_back
backend http_back
balance roundrobin
server node1 192.168.1.1:3000 check
server node2 192.168.1.2:3000 check
server node3 192.168.1.3:3000 check
在這個配置文件中,我們定義了一個名為http_front
的前端,它監聽80端口上的所有傳入請求。然后,我們創建了一個名為http_back
的后端,其中包含了三個Node.js應用程序實例。我們使用了輪詢(roundrobin)算法來實現負載均衡。
sudo systemctl reload haproxy
現在,HAProxy將作為負載均衡器,將請求分發到三個Node.js應用程序實例。