负载均衡不是简单地把流量分到多台机器,而是要根据业务特点选择算法和架构,否则高并发时照样会崩。
负载均衡怎么配置:从入门到实战的完整步骤
选对负载均衡器:硬件还是软件
硬件负载均衡(F5、A10)性能强悍但价格高昂,适合银行、大型国企等对稳定性和吞吐量有极致要求的场景,软件负载均衡(Nginx、HAProxy、LVS)灵活且成本低,是中小团队和互联网公司的首选,行业共识认为,绝大多数现代业务用软件方案就能满足需求,而且方便扩缩容。
配置Nginx实现七层负载均衡
Nginx 是最广泛使用的七层负载均衡器,配置直观。
- 安装 Nginx(以 CentOS 为例):
yum install nginx -y - 编辑主配置文件
/etc/nginx/nginx.conf,在http块内定义upstream:upstream backend { server 192.168.1.10 weight=3; server 192.168.1.11; server 192.168.1.12 backup; } - 在
server块中设置location / { proxy_pass http://backend; },将请求转发至后端集群。 - 检查配置并重启:
nginx -t && systemctl restart nginx
关键点:weight 控制权重,backup 标记备用服务器,只有主服务器全挂时才会启用。
配置HAProxy实现四层负载均衡
HAProxy 在四层和七层都有出色表现,配置清晰。
-
安装 HAProxy:
yum install haproxy -y -
编辑
/etc/haproxy/haproxy.cfg:frontend ft_web bind :80 default_backend bk_web backend bk_web balance roundrobin server web1 192.168.1.10:80 check server web2 192.168.1.11:80 check -
启动服务:
systemctl restart haproxy
balance roundrobin 为轮询算法,check 开启健康检测,一旦后端异常会自动摘除。
验证负载均衡效果
- 使用
curl多次访问负载均衡器 IP,观察后端日志确认请求落点。 - 用
压测,在每台后端用ab -n 10000 -c 100 http://目标IP/
netstat -an | grep :80 | wc -l查看连接数分布是否均匀。
负载均衡和反向代理的区别:别再傻傻分不清
功能定位不同
负载均衡的核心职责是将流量分发至多台后端,提升整体吞吐和可用性,反向代理则负责代理后端服务器对外提供服务,隐藏真实服务器地址,同时可做缓存、SSL卸载等。实践中,反向代理经常内置负载均衡功能,但两者并非同一概念。
配置层级不同
四层负载均衡基于 IP 和端口转发,效率高;七层负载均衡基于应用层协议(HTTP、HTTPS 等),可做更精细的路由,反向代理通常工作在七层,能解析 HTTP 头部、Cookie 等内容。
对比表格
| 对比项 | 负载均衡 | 反向代理 |
|---|---|---|
| 主要职责 | 分发流量到多台后端 | 代理后端服务器,隐藏真实 IP |
| 工作层级 | 四层或七层 | 七层 |
| 常见实现 | LVS、Nginx、HAProxy | Nginx、Apache、Traefik |
| 会话保持 | 通过 IP hash、Cookie | 通过 Cookie 或 Session 同步 |
| 缓存能力 | 一般不直接提供 | 可缓存静态内容 |
行业共识认为,两者不是非此即彼的关系,现代架构中常用 Nginx 同时充当反向代理和七层负载均衡,一台设备搞定路由、分发、缓存三大任务。
负载均衡适合什么场景:这些业务必须用
电商大促与秒杀活动
流量在短时间内暴涨几十倍,单台服务器瞬间被击穿,通过负载均衡将请求分发到多台实例,再配合限流和降级,保证核心下单接口可用。注意避免所有请求都打到同一个 Redis 或数据库,否则负载均衡也救不了。
微服务架构
微服务实例数量多、变化快,服务间调用必须依赖负载均衡,Kubernetes 内部用 Service 做四层分发,Ingress 做七层路由,Spring Cloud 生态则用 Ribbon 实现客户端负载均衡,调用失败时自动重试。
数据库读写分离
主库承担写入,多个从库处理读请求,在应用层或中间件层(如 MyCat、ProxySQL)配置负载均衡,将读查询轮询发送到各个从库。场景痛点:从库间数据延迟不一致,需要定制路由策略,保证同一会话读取到最新数据。
视频直播与点播
流媒体连接对稳定性和延迟要求极高,负载均衡可以根据用户地理位置,将请求分发到最近的边缘节点,降低跨地区延迟,同时健康检查能快速剔除故障节点,避免直播卡顿。
负载均衡成本怎么算:自建与云服务价格对比
自建负载均衡的成本
- 硬件成本:一台 F5 入门级设备价格在 5 万以上,高端型号可达数十万,普通服务器跑软件负载均衡需额外购买机器。
- 运维成本:需要专人维护操作系统、健康检查、硬件故障处理,以及应对突发流量时手动扩容。
- 扩展成本:流量上涨时需采购新硬件,部署周期长,且容易造成资源浪费。
云服务负载均衡的价格
- 按量付费:按小时或按流量计费,适合业务波动大的场景,例如简米云 SLB 按实例规格和流量双重计费,低峰期可随时释放。
- 包年包月:长期使用有折扣,适合流量稳定的业务,成本可控。
- 附加功能:WAF、DDoS 防护、HTTP/2 支持等可选开启,按需付费。
对比表格
| 成本项 | 自建 | 云服务 |
|---|---|---|
| 初期投入 | 高(硬件采购) | 低(按需创建) |
| 运维成本 | 高(需专人维护) | 低(平台负责) |
| 弹性扩展 | 困难(需提前规划) | 简单(自动伸缩) |
| 高可用保障 | 依赖自身冗余设计 | 多可用区自动容灾 |
| 固定资源浪费 | 常见 |
极少 |
大多数中小型企业选择云负载均衡,因为无需承担硬件采购和运维压力,且能按实际用量付费,但如果你有严格的合规要求或已有大量自建机房,自建方案依然可行。
负载均衡常见问题与故障排查
健康检查失败导致后端频繁上下线
检查后端服务是否正常,确认防火墙放行了健康检查端口,设置合理的 inter(间隔时间)和 rise/fall 次数,避免网络抖动导致误判。
会话保持不生效
确认负载均衡器配置了正确的会话保持方式:Nginx 可用 ip_hash,HAProxy 可用 cookie 插入,同时检查后端应用是否开启了 Session 复制,否则请求分发到不同节点会丢失登录状态。
性能瓶颈出现在负载均衡器本身
CPU 或连接数打满,考虑升级规格或使用四层转发(LVS)分担压力,七层处理虽然灵活,但消耗 CPU 资源较多,静态资源直接用四层分发给后端,动态请求再交给七层。
负载均衡的选型和配置必须结合业务场景、预算和团队能力,没有一劳永逸的方案,持续监控后端健康状态和流量分布,及时调整权重和算法,才是保证高可用的核心。
负载均衡使用常见问题
负载均衡算法如何选择?
轮询适合服务器性能相近的场景;最小连接适合请求处理时间长短不一的情况;IP hash 适合需要会话保持的应用,多数情况下,轮询配合权重即可满足需求,对于长连接场景应优先使用最小连接算法。
负载均衡如何实现高可用?
部署主备负载均衡器,使用 keepalived 实现虚拟 IP 漂移,主节点故障时,备用节点自动接管,客户端无感知切换,这是业界标准做法,此外云服务商提供的多可用区部署同样能实现类似效果。
负载均衡配置错误导致业务中断怎么办?
立即回滚至上一个稳定版本,然后逐条检查配置,所有变更应先在测试环境验证,生产环境配置建议纳入版本控制,并记录每次修改的变更人、时间与原因。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/548574.html




