在做完上边的配置后,我们发现,如果后端真实服务器出现问题,那么在测试端测试的时候,会返回给我们一个错误的页面,那么我们需要对后端服务器做健康检查,只返回正确的页面。
将servr2的httpd服务关闭,模拟真实主机宕机
分析:可以看到,服务时好时坏,很不合理。我们需要的是不能服务的主机应当被踢出服务列表,恢复服务时再添加进来。
1.这里我们使用ldirectord-3.9.5-3.1.x86_64来对后端服务器做健康检查
官方下载地址:ldirectord-3.9.5-3.1.x86_64.rpm
2.安装ldirectord
yum install -y ldirectord-3.9.6-0rc1.1.1.x86_64.rpm
3、查看并更改ldirectord配置文件
查看:
rpm -qpl ldirectord-3.9.6-0rc1.1.1.x86_64.rpm
warning: ldirectord-3.9.6-0rc1.1.1.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 17280ddf: NOKEY
/etc/ha.d
/etc/ha.d/resource.d
/etc/ha.d/resource.d/ldirectord
/etc/init.d/ldirectord
/etc/logrotate.d/ldirectord
/usr/lib/ocf/resource.d/heartbeat/ldirectord
/usr/sbin/ldirectord
/usr/share/doc/ldirectord-3.9.6
/usr/share/doc/ldirectord-3.9.6/COPYING
/usr/share/doc/ldirectord-3.9.6/ldirectord.cf
/usr/share/man/man8/ldirectord.8.gz
====================================
#将模板文件进行复制,从而进行编写:
cp /usr/share/doc/ldirectord-3.9.5/ldirectord.cf /etc/ha.d/
==============================================================
vim ldirectord.cf
# Sample for an http virtual service
virtual=172.25.70.100:80 #网内向外暴露的vip(虚拟ip)
real=172.25.70.2:80 gate # 后端真实服务器server1
real=172.25.70.3:80 gate # 后端真实服务器server2
fallback=127.0.0.1:80 gate # 如果后端真实服务器全部挂掉,只剩本机提醒用户在维护
service=http
scheduler=rr # 采用round-robin轮叫算法
#persistent=600
#netmask=255.255.255.255
protocol=tcp
checktype=negotiate
checkport=80
request="index.html"
#receive="Test Page"
#virtualhost=www.x.y.z
4、启动ldirectord软件
/etc/init.d/ldirectord start
5、配置调度器server1的httpd服务
#安装httpd服务
yum install httpd -y
=====================
#编写发布页
vim /var/www/html/index.html
哎呀,页面好像找不到了呢...
========================
#开启httpd服务
/etc/init.d/httpd start
6.测试
首先server2、server3无故障
分析:正常调度2台主机
server2假装故障
成功剔除故障的server2
server2恢复
server2重新被加入列表
server2拉着server3一起罢工
分析:所有的后端RS服务器挂掉之后,调度器直接访问自己的80端口的httpd服务的默认发布页