DR模式下的健康检查(Idirectord)

健康检查

  • lvs对端无法检查,如果后端的真实服务器出现问题,那么在测试端测试的时候会返回给我们一个错误的页面,那么我们需要对后端服务器做健康检查,保证只返回正确的页面给用户。
  • 例如:我们关闭server2的httpd服务之后,客户端在请求的时候,就会出现返回错误界面,网页一会能看到一会看不到:
    在这里插入图片描述
  • 我们要做的是当某台真实的服务器出问题时,可以把这台服务器剔除集群,来保证用户访问的正常效果。

实验环境

  • 3台rhel7.5版本的虚拟机
主机服务
server1(172.25.24.1)虚拟服务器
server2(172.25.24.2)真正的服务器1
server3(172.25.24.3)真正的服务器2

实验步骤

配置DR模式

server1主机
  • 删除之前隧道模式的配置,并给eth0上添加一个100的ip。
[root@server1 ~]# modprobe -r ipip    #删除隧道模式
[root@server1 ~]# ip addr add 172.25.24.100/24 dev eth0
[root@server1 ~]# ip addr show 
  • 清除原有的LUN(隧道模式)的策略,添加新的DR模式的策略
[root@server1 ~]# ipvsadm -C
[root@server1 ~]# ipvsadm -ln
[root@server1 ~]# ipvsadm -A -t 172.25.24.100:80 -s rr
[root@server1 ~]# ipvsadm -a -t 172.25.24.100:80 -r 172.25.24.2:80 -g
[root@server1 ~]# ipvsadm -a -t 172.25.24.100:80 -r 172.25.24.3:80 -g
[root@server1 ~]# systemctl restart ipvsadm.service 

[root@server1 ~]# cat /etc/sysconfig/ipvsadm
-A -t 172.25.24.100:80 -s rr
-a -t 172.25.24.100:80 -r 172.25.24.2:80 -g -w 1
-a -t 172.25.24.100:80 -r 172.25.24.3:80 -g -w 1

[root@server1 ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.25.24.100:80 rr
  -> 172.25.24.2:80               Route   1      0          0         
  -> 172.25.24.3:80               Route   1      0          0         
server2和server3
  • 删除隧道,添加100到eth0:
[root@server2 ~]# modprobe -r ipip
[root@server2 ~]# ip addr add 172.25.24.100/24 dev eth0
真机检测
  • DR模式的检测
[root@foundation24 ~]# curl 172.25.24.100
server2-----apache
[root@foundation24 ~]# curl 172.25.24.100
server3-----apache
[root@foundation24 ~]# curl 172.25.24.100
server2-----apache
[root@foundation24 ~]# curl 172.25.24.100
server3-----apache

健康模式

server1
  • 下载并安装健康模式需要的安装包ldirector。
    在这里插入图片描述

  • 安装过程会出错,我们还需要配置高可用的yum源。
    在这里插入图片描述

  • 配置yum源。

[rhel7.5]
name=rhel7.5
baseurl=http://172.25.24.24/rhel7.5
gpgcheck=0

[HighAvailability]
name=HighAvailability
baseurl=http://172.25.24.24/rhel7.5/addons/HighAvailability
gpgcheck=0

在这里插入图片描述

  • 安装该软件
[root@server1 ~]# ls
ldirectord-3.9.5-3.1.x86_64.rpm
[root@server1 ~]# yum install * -y

在这里插入图片描述

  • 将配置文件移到安装目录下,并修改健康检查的配置文件。
[root@server1 ~]# cp /usr/share/doc/ldirectord-3.9.5/ldirectord.cf /etc/ha.d/
[root@server1 ~]# vim /etc/ha.d/ldirectord.cf   #配置文件中修改:

25 virtual=172.25.24.100:80     #外部访问的IP
26         real=172.25.24.2:80 gate      #真实的服务器1
27         real=172.25.24.3:80 gate      #真实的服务器2
28         fallback=127.0.0.1:80 gate    #fallback 自己的回环接口,两台RS都挂了就访问这个
29         service=http
30         scheduler=rr    #轮询
31         #persistent=600
32         #netmask=255.255.255.255
33         protocol=tcp
34         checktype=negotiate
35         checkport=80
36         request="index.html"
37 #       receive="Test Page"     #注释
38 #       virtualhost=www.x.y.z     #注释
  • 修改完成后开启服务,且设置为开机自启动。
[root@server1 ~]# /etc/init.d/ldirectord start
[root@server1 ~]# chkconfig ldirectord on
  • 安装httpd,写默认的发布文件,并开启httpd服务。
[root@server1 ~]# yum install httpd -y
[root@server1 ~]# vim /var/www/html/index.html
[root@server1 ~]# cat /var/www/html/index.html 
糟糕,页面走丢了..
[root@server1 ~]# systemctl start httpd

健康模式测试

server2
  • 在server2上,关闭httpd,在真机访问测试,我们发现只能访问server3主机的内容(server2已经被剔除):
    在这里插入图片描述
  • 在server1查看访问的次数。
    在这里插入图片描述
  • 将server3的httpd也关闭,在真机访问测试,此时只能访问server1主机的内容(server3也被剔除):
    在这里插入图片描述
  • 在server1查看访问的次数。
    在这里插入图片描述
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值