健康检查用于探测您的后端服务器是否处于正常工作状态,当健康检查出现异常时,通常说明您的后端服务器出现了异常,但也有可能是您的健康检查配置不正确导致,本文主要介绍对七层监听(HTTP/HTTPS)健康检查异常进行排查的详细步骤。

操作步骤

  1. 确保后端服务器上没有针对100.64.0.0/10地址段进行任何形式的屏蔽,包括iptables或其他任何第三方防火墙/安全策略软件。

    负载均衡SLB通过100.64.0.0/10内部保留地址段中的IP地址与后端服务器通信,如被屏蔽则会导致健康检查异常,负载均衡无法正常工作。

  2. 从后端服务器本地发起访问,确保后端服务器上的HTTP服务正常工作。
    1. 登录负载均衡控制台,在监听实例详情页中,查看健康检查配置。
      本次示例使用HTTP监听,出现健康检查异常的后端服务器内网IP为10.0.0.2,其他健康检查配置信息如下:
      • 健康检查端口:80
      • 健康检查域名www.slb-test.com
      • 健康检查路径/test.html


    2. 以Linux系统为例,执行nccurl命令对后端服务器上的HTTP服务进行探测,健康检查路径、健康检查端口和健康检查域名配置必须与后端服务器上配置保持一致,否则会产生健康检查异常。
      此处使用nc命令为例,请根据实际情况配置健康检查路径、健康检查域名、健康检查内网地址和健康检查端口:
      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状态码不符,此时会出现健康检查异常结果,如下图所示。