一 架构分层与适用场景
二 常用方案与关键配置
http {
upstream node_app {
server 10.0.1.11:3000;
server 10.0.1.12:3000;
server 10.0.1.13:3000;
}
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_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;
}
}
}
global
log /dev/log local0
log /dev/log local1 notice
daemon
defaults
log global
mode http
option httplog
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
frontend http_front
bind *:80
default_backend http_back
backend http_back
balance roundrobin
server node1 10.0.1.11:3000 check
server node2 10.0.1.12:3000 check
server node3 10.0.1.13:3000 check
const cluster = require('cluster');
const http = require('http');
const numCPUs = require('os').cpus().length;
if (cluster.isMaster) {
for (let i = 0; i < numCPUs; i++) cluster.fork();
cluster.on('exit', (worker) => cluster.fork());
} else {
http.createServer((req, res) => res.end('OK')).listen(3000);
}
pm2 start app.js -i max(按 CPU 核数启动工作进程)。三 负载均衡算法选型
四 健康检查与故障转移
check,自动摘除异常节点;必要时结合应用层心跳接口做更细粒度探测。五 部署与运维要点
Upgrade/Connection 头,确保协议升级与连接复用。免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。