LVS + Keepalived 集群部署
1、架构图
2、LVS 环境准备
在两台 nginx 服务器上操作
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/ens32/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/ens32/arp_ignore
systemctl restart network
# 添加本地回环网址
ifconfig lo:0 10.22.86.50 netmask 255.255.255.255 broadcast 10.22.86.50
# 添加本地回环路由地址
route add -host 10.22.86.50 dev lo:0
3、keepalived 配置
在两台 Keepalived 服务器上操作
# 主 Keepalived
[root@localhost keepalived]# cat keepalived.conf
global_defs {
router_id ha1
}
vrrp_instance VI_1 {
state MASTER
interface ens32
virtual_router_id 66
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.22.86.50
}
}
virtual_server 10.22.86.50 80 {
delay_loop 6 #服务轮询的时间间隔
lb_algo rr #加权轮询调度,LVS调度算法 rr|wrr|lc|wlc|lblc|sh|sh
lb_kind DR #LVS集群模式 NAT|DR|TUN,其中DR模式要求负载均衡器网卡必须有一块与物理网卡在同一个网段
#nat_mask 255.255.255.0
#persistence_timeout 1 #会话保持时间
protocol TCP #健康检查协议
real_server 10.22.86.200 80 {
weight 3 ##权重
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 10.22.86.201 80 {
weight 3 ##权重
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
# 备 keepalived
[root@localhost keepalived]# cat keepalived.conf
global_defs {
router_id ha1
}
vrrp_instance VI_1 {
state BACKUP
interface ens32
virtual_router_id 66
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.22.86.50/24
}
}
virtual_server 10.22.86.50 80 {
delay_loop 6 #服务轮询的时间间隔
lb_algo rr #加权轮询调度,LVS调度算法 rr|wrr|lc|wlc|lblc|sh|sh
lb_kind DR #LVS集群模式 NAT|DR|TUN,其中DR模式要求负载均衡器网卡必须有一块与物理网卡在同一个网段
#nat_mask 255.255.255.0
#persistence_timeout 1 #会话保持时间
protocol TCP #健康检查协议
real_server 10.22.86.200 80 {
weight 3 ##权重
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 10.22.86.201 80 {
weight 3 ##权重
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
ps -aux | grep keep | grep -v grep | awk '{print $2}' | xargs kill -9 /usr/local/keepalived/sbin/keepalived -D
4、测试
5、常用命令
ipvsadm -C
ipvsadm -A -t 10.22.86.50:80 -s rr
ipvsadm -a -t 10.22.86.50:80 -r 10.22.86.200 -g
ipvsadm -a -t 10.22.86.50:80 -r 10.22.86.201 -g
ipvsadm -L -n
ifconfig lo:0 10.22.86.50 netmask 255.255.255.255 broadcast 10.22.86.50
route add -host 10.22.86.50 dev lo:0
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统