服务器负载均衡配置详解:负载均衡配置从零开始

为什么要做负载均衡?

当单台服务器扛不住流量时,你需要把请求分发到多台后端节点上。负载均衡配置 的核心目标就是提高可用性和横向扩展能力。
本文以最常用的 Nginx 为例,带你从零上手。

准备条件

  • 至少两台 Linux 服务器(可用虚拟机或云服务器),一台作为负载均衡器,其余作为后端节点。
  • 所有服务器已安装 Nginx(安装命令:yum install nginx -yapt install nginx -y)。
  • 后端节点上部署好你的 Web 应用(如一个简单的 index.html),确保 80 端口可访问。
  • 负载均衡器与后端节点之间网络互通,防火墙放行 80 端口(例如 firewall-cmd --add-port=80/tcp --permanent && firewall-cmd --reload)。

配置 Nginx 实现负载均衡

1. 编辑主配置文件

负载均衡器上执行:

vim /etc/nginx/nginx.conf

http 块内添加一个 upstream 块,指向你的后端节点 IP(替换为实际 IP):

upstream backend {
    server 192.168.1.101:80 weight=3;
    server 192.168.1.102:80 weight=2;
    server 192.168.1.103:80 backup;
}

这里 weight 表示权重(数字越大分发的请求越多),backup 标记为备用节点,只在其他节点都不可用时启用。

2. 配置 server 块转发

在同一个 nginx.conf 文件中,修改或新增 server 块:

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://backend;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

保存后测试配置:nginx -t,如果输出 syntax is ok 则表示无误。

3. 重启 Nginx

systemctl restart nginx

避坑指南

  • 权重设置不合理:如果某台后端性能较差,权重过高会使其过载。建议根据实际 CPU/内存负载动态调整。
  • 未配置健康检测:默认 Nginx 不会自动剔除故障节点。可添加 max_fails=3 fail_timeout=30s 参数:
  server 192.168.1.101:80 weight=3 max_fails=3 fail_timeout=30s;

这样连续失败 3 次后,Nginx 会暂时将该节点标记为不可用,30 秒后重新尝试。

  • 会话丢失问题:如果应用依赖 session(如登录状态),简单的轮询会导致用户在不同节点间跳转时丢失会话。解决方案:启用 IP Hash 或配置 Redis 共享 session。Nginx 的 IP Hash 方法:
  upstream backend {
      ip_hash;
      server 192.168.1.101:80;
      server 192.168.1.102:80;
  }
  • 防火墙端口未开放:负载均衡器与后端节点之间的 80 端口必须互相放行,否则健康检查会失败。

效果验证

查看日志

负载均衡器上执行:

tail -f /var/log/nginx/access.log

然后从客户端多次访问 http://负载均衡器IP,观察日志中 upstream_addr 字段是否轮换显示不同后端 IP。

模拟故障

故意停止一个后端节点的 Nginx 服务:

systemctl stop nginx

再次访问,应该依然能正常返回内容(由其他存活节点响应),且日志中不再出现该故障 IP。

使用 curl 工具

执行多次:

curl -s http://负载均衡器IP | head -1

如果后端节点返回的页面内容有差异(如节点标识),可以看到结果随机变化。

常见问题 Q&A

Q:配置后访问负载均衡器返回 502 Bad Gateway?
A:检查后端节点上的 Web 服务是否正常启动,以及负载均衡器能否通过 curl http://后端IP:80 成功获取内容。同时确认防火墙已放行。

Q:如何查看当前负载均衡算法的效果?
A:在 upstream 块中使用 least_connrandom 等算法,并通过持续访问观察日志中的分配比例。

Q:多台后端节点需要同步代码吗?
A:必须同步。常见方案是使用代码仓库 + 自动部署(如 rsync、Git hook),或者将静态资源挂在共享存储上。

完成以上步骤后,你的 服务器负载均衡配置 就已经生效了。
建议先在小流量环境下观察一两天,再上线正式业务。
遇到问题时优先排查网络连通性与配置文件语法错误。

分享到:
上一篇
Docker部署haproxy:零基础用Docker部署
下一篇
宝塔面板PHP版本兼容问题怎么处理?手把手排查与解决方法
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意