在Linux系统中配置网络负载均衡是提升后端服务稳定性和并发处理能力的重要手段,通过将客户端请求分发到多台后端真实服务器,避免单节点过载导致服务不可用。目前Linux生态中最常用的网络负载均衡方案是LVS结合keepalived实现,LVS负责流量转发,keepalived负责高可用和规则管理。

环境准备
本次配置需要三台Linux服务器,一台作为LVS负载均衡器,两台作为后端真实服务器,所有服务器均关闭防火墙和SELinux,保证网络互通。首先需要安装相关的工具包,负载均衡器上安装ipvsadm和keepalived,后端服务器安装httpd用于测试。
安装依赖工具
在负载均衡器节点执行以下命令安装所需组件:
# 安装ipvsadm管理工具 yum install -y ipvsadm # 安装keepalived高可用组件 yum install -y keepalived
在后端两台真实服务器上安装httpd服务并启动:
yum install -y httpd systemctl start httpd systemctl enable httpd # 创建测试页面,两台服务器内容区分开便于验证负载效果 echo "Real Server 1" > /var/www/html/index.html echo "Real Server 2" > /var/www/html/index.html
配置keepalived实现负载均衡
keepalived的配置文件默认路径为/etc/keepalived/keepalived.conf,我们需要修改该文件定义负载均衡规则。本次采用DR模式,这是LVS中最常用的模式,性能最高,请求直接由真实服务器返回给客户端。
负载均衡器配置
编辑keepalived配置文件,内容如下:
global_defs {
router_id LVS_DEMO # 路由标识,同一网络内唯一
}
vrrp_instance VI_1 {
state MASTER # 主节点标识,备节点改为BACKUP
interface eth0 # 绑定的网卡名称,根据实际网卡调整
virtual_router_id 51 # 虚拟路由ID,主备节点需一致
priority 100 # 优先级,主节点高于备节点
advert_int 1 # 心跳检查间隔
authentication {
auth_type PASS
auth_pass 1111 # 认证密码,主备节点需一致
}
virtual_ipaddress {
192.168.0.100 # 虚拟VIP地址,客户端访问的地址
}
}
virtual_server 192.168.0.100 80 { # 虚拟服务,VIP加端口
delay_loop 6 # 健康检查间隔
lb_algo rr # 负载均衡算法,rr为轮询
lb_kind DR # 负载均衡模式,DR模式
persistence_timeout 0 # 会话保持时间,0表示不保持
protocol TCP # 协议类型
real_server 192.168.0.11 80 { # 第一台真实服务器
weight 1 # 权重
TCP_CHECK { # TCP健康检查
connect_timeout 3
retry 3
delay_before_retry 3
}
}
real_server 192.168.0.12 80 { # 第二台真实服务器
weight 1
TCP_CHECK {
connect_timeout 3
retry 3
delay_before_retry 3
}
}
}
配置完成后启动keepalived服务:
systemctl start keepalived systemctl enable keepalived
后端真实服务器配置
DR模式下,后端服务器需要绑定VIP到回环接口,并且关闭ARP响应,避免IP冲突。在两台真实服务器上执行以下脚本:
#!/bin/bash VIP=192.168.0.100 # 绑定VIP到回环接口 ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP # 添加路由 route add -host $VIP dev lo:0 # 关闭ARP响应相关参数 echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
可以将脚本添加到开机启动项,避免重启后配置失效。
验证负载均衡效果
在客户端机器上多次访问虚拟VIP地址,查看返回的内容是否交替出现两台真实服务器的测试页面:
curl 192.168.0.100 # 第一次返回Real Server 1 # 第二次返回Real Server 2 # 以此类推,说明负载均衡配置生效
也可以查看负载均衡器的转发规则,确认规则已经加载:
ipvsadm -Ln # 可以看到虚拟服务和两台真实服务器的配置信息
常见负载均衡模式对比
LVS支持多种负载均衡模式,不同模式的适用场景不同,具体差异如下:
| 模式名称 | 性能 | 配置复杂度 | 适用场景 |
|---|---|---|---|
| DR模式 | 最高 | 中等 | 后端服务器和负载均衡器同网段,对性能要求高的场景 |
| NAT模式 | 中等 | 低 | 后端服务器和负载均衡器不同网段,配置简单的场景 |
| TUN模式 | 较高 | 高 | 跨地域的负载均衡场景 |
注意事项
- 如果是生产环境,建议配置两台负载均衡器,一台主一台备,避免单点故障,备节点的keepalived配置只需修改state为BACKUP,priority值低于主节点即可。
- 负载均衡算法除了轮询rr,还有加权轮询wrr、最小连接lc等,可以根据后端服务器性能选择合适的算法。
- 后端服务器健康检查除了TCP_CHECK,还支持HTTP_GET等方式,可以更准确地检测服务可用性。
Linux网络负载均衡LVSkeepalivedipvsadm修改时间:2026-06-18 12:03:42