AX负载均衡配置经验漫谈
2018-06-11 来源:
健康检查是负载均衡中最基本的功能,也是整个负载均衡处理过程中最重要的环节。为了确保后端应用的高可用性,负载均衡通过定义的健康检查方法实时的对后端服务器或应用的健康状态进行检测,当后台服务器发生故障的时候,负载均衡会发现这些问题,并把服务器从应用服务组中排出,以避免将正常的客户端请求转发至故障的服务器上,以确保用户的能够正常访问后端的应用。
有时候,虽然服务器仍在运行,但是因为某种原因,比如:软件编写的漏洞或着相关联的应用中间件或数据库出了问题,导致服务器上运行的应用系统已经不能正常工作。在这种情况下,就需要采用一些能够检测应用状态(有时也称作基于应用内容)的健康检查方法。
基于ICMP协议的健康检查
利用ICMP进行健康检查是负载均衡最常用也是最基本的健康检查方式。负载均衡向被检测的服务器发送一个ICMP Request,如果能收到服务器的ICMP Reply,则说明服务器当前正常运行。一般情况下,ICMP健康检查只能说明服务器正在运行,但是,对服务器上运行的应用却无任何感知,因此,ICMP健康检查常用于一些链路负载均衡的部署环境,在应用服务器负载均衡的环境中,ICMP是不太可靠的。
基于TCP协议的健康检查
常见的应用程序都会使用一个固定的监听端口,比如:HTTP运行在80端口,FTP运行在21/20端口、HTTPS运行在443端口等等。因此,TCP健康检查就是负载均衡与对应的服务器应用端口进行TCP三次握手,如果握手成功,则说明服务器上的应用正常工作,如果握手失败,则说明当前服务器运行情况不正常。
基于UDP协议的健康检查
相较于TCP,UDP是无连接的协议,尽管协议交互更加简单,但是健康检查方法却并不简单。因为对于TCP来说,只要无法正常建立TCP连接,即可说明服务器端应用服务不正常。但是,利用UDP进行通信时,却并无严格要求服务器在收到UDP请求报文时必须进行确认。因此,UDP健康检查主要是看在发送出UDP的健康检查报文后,是否会收到ICMP unreachable的报文。如果没收到这种报文,就说明应用正常运行;如果收到这种ICMP报文,则说明应用发送了故障。
基于应用内容的健康检查方法
利用常见的ICMP、TCP和UDP健康检查方法,尽管能够对服务器的健康状态进行检查,但是,我们有时候会发现,尽管仍然能与服务器建立TCP三次握手,但是,服务器却无法正常响应客户端请求。在这种情况下,我们需要更进一步,采用基于应用内容的健康检查方法。
例如,对于Web应用服务器,我们可以模拟客户端发送一个HTTP请求,根据响应的内容或响应状态码来判断Web应用服务器的健康状态。
基于脚本的健康检查方法
在某些情况下,由于用户的一些应用特殊性,无法用与常规的健康检查方法进行健康检查。例如:在某些链路健康状态检查时,必须采用指定的源地址进行链路的健康检查,在这些情况下,我们可以用一个简单的脚本来解决问题。
A10的AX上提供了丰富的健康检查方法,从简单的ICMP、TCP、UDP到基于应用内容检测的HTTP、HTTPS、FTP、SIP等等。下面,我们将以A10网络的AX负载均衡为例,来说明这些常见的负载均衡的配置方法。
标签: https 服务器 服务器端 脚本 漏洞 数据库 通信 网络 问题 应用服务器 用户
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。