先按照LVS DR(https://blog.csdn.net/cqzdp/article/details/105089910)做网络连通,并且设置R1和R2, LVS通过keepalive的配置文件做配置。
做TCP方式的健康检测配置记录如下:
1. 在centos 8 上安装keepalive
[root@centos8 home]# yum install keepalived
配置文件地方
[root@centos8 /]# cd /etc/keepalived/
[root@centos8 keepalived]# cp keepalived.conf keepalived.conf-bak #备份配置文件
[root@centos8 keepalived]# ls
keepalived.conf keepalived.conf-bak
[root@centos8 keepalived]#
2. 配置如下
[root@centos8 keepalived]# cat keepalived.conf
! Configuration File for keepalived
virtual_server 192.168.1.10 9081 { #做LVS的配置
delay_loop 6
lb_algo rr
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 0
protocol TCP
real_server 192.168.1.9 9081 {
weight 1
TCP_CHECK { #TCP方式做健康检测
connect_port 9081
connect_timeout 5 #超时五秒,可以修改
}
}
real_server 192.168.1.109 9081 {
weight 1
TCP_CHECK {
connect_port 9081
connect_timeout 5
}
}
}
另外设置后需要设置虚拟VIP
ifconfig lo:1 192.168.1.10 netmask 255.255.255.255 up
3. 启动keepalived
[root@centos8 keepalived]# keepalived
[root@centos8 keepalived]# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP centos8:9081 rr
-> 192.168.1.9:9081 Route 1 0 0
-> 192.168.1.109:9081 Route 1 0 0
[root@centos8 keepalived]#
4.结果检测
在客户端检测结果
C:\Users\eric>curl 192.168.1.10:9081
<script type='text/javascript'>top.location.href='/IPTV/index.html'</script>
C:\Users\eric>curl 192.168.1.10:9081
<html>
<head><title>404 Not Found</title></head>
<body bgcolor="white">
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.14.0 (Ubuntu)</center>
</body>
</html>
当断掉109网线或者down掉网口
C:\Users\eric>curl 192.168.1.10:9081
<script type='text/javascript'>top.location.href='/IPTV/index.html'</script>
C:\Users\eric>curl 192.168.1.10:9081
<script type='text/javascript'>top.location.href='/IPTV/index.html'</script>
C:\Users\eric>curl 192.168.1.10:9081
<script type='text/javascript'>top.location.href='/IPTV/index.html'</script>
C:\Users\eric>curl 192.168.1.10:9081
<script type='text/javascript'>top.location.href='/IPTV/index.html'</script>