背景:
在上一篇DR模式下的负载均衡实验的环境下,有一个问题:如果两个真实web服务器中一个挂掉了,那么在轮询的机制下显然会出错,如下图:
停掉server2上的httpd服务:
再在client主机上测试:
显然,这对用户能说体验是及其差的; 怎么解决这一问题呢?那就是提供健康检查,若出了问题,就告知LB,让LB不使用坏了的服务器。
解决问题:
1. 在3号主机LB上配置高可用的YUM源:
2. 下载安装软件包:ldirectord-3.9.5-3.1.x86_64.rpm
3. 配置文件 ldirectord.cf:
4. 清空之前的ipvs配置:
为什么要清除掉我们之前用命令配置的LB调度规则呢? 因为在上一步的配置的文件中就相当于已经帮我们做过LB的一系列配置,若不清除之前的配置就重复了,我们就步知道到底是谁在起作用。
4. 开启高可用服务:
5. 测试:
若web1和web2都正常运行:
客户访问web服务器的时候轮询正常:
若我们停掉web1的httpd服务:
客户访问web服务器的时候,LB检查出web1有问题,故不再访问web1:
若我们再上线web1的httpd服务:
当客户再次访问web服务器的时候,因为LB的高可用机制检查到web1恢复了正常,故又在web1和web2之间轮询。
若两台web服务器都挂掉:
调度器自己顶上: