负载均衡SLB

如何排查七层监听(HTTP/HTTPS)健康检查异常

操作步骤

1, 确保后端服务器上没有针对100.64.0.0/10地址段进行任何形式的屏蔽,包括iptables或其他任何第三方防火墙/安全策略软件。
负载均衡SLB通过100.64.0.0/10内部保留地址段中的IP地址与后端服务器通信,如被屏蔽则会导致健康检查异常,负载均衡无法正常工作。

2, 从后端服务器本地发起访问,确保后端服务器上的HTTP服务正常工作。

i 登录负载均衡控制台,在监听实例详情页中,查看健康检查配置。
本次示例使用HTTP监听,出现健康检查异常的后端服务器内网IP为10.0.0.2,其他健康检查配置信息如下:

• 健康检查端口:80

• 健康检查域名:www.slb-test.com

• 健康检查路径:/test.html

ii 以Linux系统为例,执行nc或curl命令对后端服务器上的HTTP服务进行探测,健康检查路径、健康检查端口和健康检查域名配置必须与后端服务器上配置保持一致,否则会产生健康检查异常。
此处使用nc命令为例,请根据实际情况配置健康检查路径、健康检查域名、健康检查内网地址和健康检查端口:

  1. echo -e "HEAD /test.html HTTP/1.0\r\nHost: www.slb-test.com\r\n\r\n" | nc -t 172.17.58.131 80

• 正常情况下,返回200或其他2xx/3xx返回码,如下图所示。

• 异常示例:假设负载均衡上的监听配置保持不变,但是删除后端服务器上/test.html页面,执行nc命令后,得到404错误码,该错误码与负载均衡SLB监听中设置的2xx或者3xx状态码不符,此时会出现健康检查异常结果,如下图所示。