2026-07-04 15:37:10
Nginx 负载均衡配置实战指南
一、核心配置步骤安装 Nginx
确保系统已安装 Nginx(通过 nginx -v 检查)
未安装时执行:
# Ubuntu/Debiansudo apt update && sudo apt install nginx# CentOS/RHELsudo yum install epel-release && sudo yum install nginx配置负载均衡编辑 Nginx 配置文件(通常位于 /etc/nginx/nginx.conf 或 /etc/nginx/conf.d/load-balance.conf),添加以下内容:
http { upstream backend_servers { server 127.0.0.1:3000 weight=1; server 127.0.0.1:3001 weight=1; # 可选参数: # least_conn; # 最少连接数策略 # ip_hash; # IP 哈希固定后端 } server { listen 80; location / { proxy_pass验证并重启 Nginx
sudo nginx -t # 测试配置语法sudo systemctl restart nginx # 重启服务默认策略:轮询(Round Robin)
请求按顺序分配到各服务器(如示例配置)。
加权轮询
通过 weight 参数分配流量比例(如 server 127.0.0.1:3000 weight=2; 表示双倍流量)。
最少连接数
在 upstream 中添加 least_conn;,优先分配给当前连接数最少的服务器。
IP 哈希
添加 ip_hash; 实现客户端 IP 固定后端,适合会话保持场景。
启动测试服务
node app.js # 启动 3000 端口服务node app2.js # 启动 3001 端口服务循环请求验证
for i in {1..10}; do curl预期结果:交替返回两个服务的响应(轮询效果)。
检查访问日志
tail -f /var/log/nginx/access.log观察请求是否均匀分布到后端服务器。
健康检查
upstream backend_servers { server 127.0.0.1:3000 max_fails=3 fail_timeout=30s; server 127.0.0.1:3001;}max_fails 和 fail_timeout 实现故障自动摘除。
动态 DNS 解析
upstream backend { server backend.example.com resolve;}适用于云环境自动更新的后端 IP。
性能优化
启用 keepalive 减少连接开销:
upstream backend { server 127.0.0.1:3000; keepalive 32;}502 Bad Gateway
检查后端服务是否运行(curl localhost:3000)。
确认 Nginx 配置中 proxy_pass 地址与后端一致。
连接超时
调整超时参数:
location / { proxy_connect_timeout 60s; proxy_read_timeout 60s;}日志分析
错误日志路径:/var/log/nginx/error.log。
通过以上步骤,您已实现 Nginx 对两个 Node.js 服务的负载均衡。如需扩展至生产环境,建议结合监控工具(如 Prometheus + Grafana)持续观察流量分布和服务器状态。