linux负载均衡集群部署需按流量特征选型:四层lvs适合高吞吐简单协议,七层nginx/haproxy支持http解析与tls终止;必须用keepalived等实现主备高可用,禁用无健康检查的dns轮询。

Linux 服务器部署负载均衡器集群,核心是选对层级、配好调度、确保高可用。四层(LVS)适合吞吐量大、协议简单的场景;七层(Nginx/HAProxy)适合需解析 HTTP 头、做 URL 路由或 TLS 终止的业务。单点负载均衡器本身是单点故障,所以必须搭配 Keepalived 或类似机制实现主备切换。
明确架构层级和选型依据
先判断流量特征再决定用哪一层:
- 用 LVS(四层):后端全是 HTTP/HTTPS 服务,但不需要改请求头、不依赖 Cookie 或路径路由,追求极致性能和并发能力(如直播推流、游戏登录网关)
- 用 Nginx(七层):需要基于 Host、URI、Header 做转发,支持 HTTPS 卸载、限流、动静分离,运维友好、配置直观
- 避免 DNS 轮询:无健康检查,某台后端宕机后仍会分发请求,仅适合静态资源或临时测试
以 Nginx 为例搭建基础集群
这是最常用、上手最快的方案,适用于中小规模 Web 服务:
- 在负载均衡节点安装 Nginx:
sudo apt install nginx -y(Ubuntu)或yum install nginx -y(CentOS) - 编辑站点配置(如
/etc/nginx/sites-available/lb),定义 upstream 和 proxy 规则 - 启用健康检查(可选但推荐):
health_check interval=3 fails=2 passes=2;放在 upstream 块内 - 启用配置并重载:
ln -sf ... && nginx -t && systemctl reload nginx
用 LVS + Keepalived 实现高可用四层集群
当性能压测接近万级并发,或要求毫秒级故障切换时,LVS 是更稳的选择:
- 主备两台调度器都装
ipvsadm和keepalived,配置相同 VIP(如 192.168.1.100) - Keepalived 配置中指定
state MASTER/state BACKUP和不同priority,自动抢 VIP - LVS 使用 DR 模式(推荐):RS(真实服务器)直接响应客户端,不经过调度器,降低瓶颈;需在 RS 上绑定 VIP 到 lo 接口,并关闭 ARP 响应
- 后端 RS 需部署相同服务(如 Nginx/Apache),首页内容可加 IP 标识便于验证轮询效果
关键细节不能跳过
很多集群上线后出问题,往往卡在这些地方:
- 网络互通:所有节点(LB、RS、测试机)必须能 ping 通,防火墙开放对应端口(如 80、443、VIP 的 80)
-
时间同步:用
chrony或ntpdate统一时钟,避免 Keepalived 心跳异常 -
后端健康状态反馈:Nginx 的
proxy_next_upstream、LVS 的ipvsadm --list --stats、Keepalived 的日志(/var/log/messages)都要定期看 - 不要共用同一台机器跑 LB 和 RS:测试环境可以,生产环境必须物理/逻辑隔离,否则失去容错意义











