在Linux系统中,通过LVS(Linux Virtual Server)结合Keepalived可以搭建出高可用的网络负载均衡集群,既能够实现流量的均匀分发,又能在主节点故障时自动切换到备用节点,避免单点故障影响业务运行。

环境准备
本次部署需要两台负载均衡节点(主节点和备节点)以及至少两台后端真实服务器,所有节点均使用CentOS 7及以上版本的Linux系统,网络互通且关闭防火墙或开放对应端口。节点角色规划如下:
- 主负载均衡节点:IP为192.168.0.10
- 备负载均衡节点:IP为192.168.0.11
- 虚拟IP(VIP):192.168.0.100,对外提供负载均衡服务
- 后端真实服务器1:IP为192.168.0.20,运行Web服务
- 后端真实服务器2:IP为192.168.0.21,运行Web服务
安装依赖软件
在两台负载均衡节点上都需要安装LVS和Keepalived,执行以下命令完成安装:
# 安装LVS管理工具 yum install -y ipvsadm # 安装Keepalived yum install -y keepalived
后端真实服务器需要安装Web服务用于测试,这里以Nginx为例:
yum install -y nginx systemctl start nginx systemctl enable nginx
配置后端真实服务器
为了让LVS能够正确转发流量到后端服务器,需要在后端真实服务器上配置VIP到回环接口,并且调整内核参数避免ARP冲突,执行以下脚本完成配置:
#!/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
将脚本保存为rs_config.sh,赋予执行权限后运行,两台后端服务器都需要执行该操作。
配置Keepalived实现高可用负载均衡
主节点配置
编辑主节点的Keepalived配置文件/etc/keepalived/keepalived.conf,内容如下:
global_defs {
router_id LVS_MASTER # 节点标识,主备节点需不同
}
vrrp_instance VI_1 {
state MASTER # 主节点角色
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 # 虚拟IP地址
}
}
virtual_server 192.168.0.100 80 {
delay_loop 6 # 健康检查间隔
lb_algo rr # 负载均衡算法,rr为轮询
lb_kind DR # LVS工作模式,DR模式性能最优
persistence_timeout 0 # 会话保持时间,0为不保持
protocol TCP # 协议类型
real_server 192.168.0.20 80 {
weight 1 # 权重
TCP_CHECK {
connect_timeout 3 # 连接超时时间
retry 3 # 重试次数
delay_before_retry 3 # 重试间隔
}
}
real_server 192.168.0.21 80 {
weight 1
TCP_CHECK {
connect_timeout 3
retry 3
delay_before_retry 3
}
}
}
备节点配置
备节点的配置文件和主节点大部分一致,仅需要调整以下参数:
global_defs {
router_id LVS_BACKUP # 备节点标识
}
vrrp_instance VI_1 {
state BACKUP # 备节点角色
interface eth0
virtual_router_id 51
priority 90 # 优先级低于主节点
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.0.100
}
}
# 下方的virtual_server配置和主节点完全一致
virtual_server 192.168.0.100 80 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 0
protocol TCP
real_server 192.168.0.20 80 {
weight 1
TCP_CHECK {
connect_timeout 3
retry 3
delay_before_retry 3
}
}
real_server 192.168.0.21 80 {
weight 1
TCP_CHECK {
connect_timeout 3
retry 3
delay_before_retry 3
}
}
}
启动服务与验证
分别在主备负载均衡节点上启动Keepalived服务:
systemctl start keepalived systemctl enable keepalived
可以通过以下方式验证配置是否生效:
- 在主节点执行
ip addr show eth0,可以看到eth0网卡上绑定了192.168.0.100的VIP - 执行
ipvsadm -Ln,可以看到LVS的规则已经加载,后端服务器列表正常 - 在客户端访问
http://192.168.0.100,多次刷新可以看到请求轮流分发到两台后端服务器 - 关闭主节点的Keepalived服务,VIP会自动漂移到备节点,访问服务不受影响,实现高可用切换
关键参数说明
| 参数 | 说明 |
|---|---|
| lb_algo | 负载均衡算法,可选rr(轮询)、wrr(加权轮询)、lc(最少连接)等 |
| lb_kind | LVS工作模式,DR模式性能最好,还有NAT、TUN模式可选 |
| priority | Keepalived节点优先级,数值越高优先级越高,主节点需高于备节点 |
| TCP_CHECK | 后端服务器的健康检查方式,这里使用TCP端口连通性检查 |
按照以上步骤操作,就可以在Linux系统上完成高可用网络负载均衡的部署,满足业务的高并发和高可用需求。如果后续需要扩容后端服务器,只需要在Keepalived配置中添加对应的real_server配置并重启服务即可。
Linux负载均衡高可用KeepalivedLVS修改时间:2026-07-16 09:54:33