LVS(四)应用服务器的健康检查

在LVS中没有健康检查功能,也就是说无论是NAT模式还是DR模式,如果后端的应用服务器有故障无法响应,LVS还是会按照自己的负载均衡策略去转发请求,那么就会出现那种把请求转发到有故障的应用服务器上。

如果要想实现检查检查就需要另外的东西,LVS本身没有这个功能。

另外还可以写一个脚本来完成健康检查功能,当然真正在大规模环境中,最好还是使用专用功能来完成这个工作。
我们接下来就说一下如何通过脚本实现对应用服务器的健康检查:

假设所有应用服务器都故障了,我们就需要给用户提供一个页面,提示一下说业务正在维护,请稍后再尝试。
我们就可以在LVS上启用HTTP服务,然后在有故障的时候去显示该页面。

那么如何去实现健康检查呢?我们只需要通过命令去访问主页面,如果访问成功就是健康,不成功就是不健康,如下图:
访问百度是成功的返回0,访问一个假的网站不成功,返回6.

或者使用elinks命令

或者我们还可以这样来操作,在应用服务器上添加一个隐藏的HTML页面,我们去访问这个页面,如果可以获取到页面内容就是正常,如果获取不到就是不正常,比如:

测试访问

但是由于elinks没法设置超时时间,所以如果网站不可用,会停顿一会,这样显然不好,所以用curl还是比较合适,如下图:

整体思路就是,检查是否在线,如果在线就不操作,如果不在线就从集群中移除,如果之后恢复服务就再添加进来。

我们这里会用到数组,下面是定义数组和获取数组值,注意一定要使用{}来获取值,如下图:

获取数组中的元素个数

显示数组所有元素

脚本内容

猜你喜欢

转载自www.cnblogs.com/yunxizhujing/p/9750996.html