全部产品
Search
文档中心

负载均衡:ALB健康检查

更新时间:Mar 19, 2026

ALB支持通过健康检查持续监控后端服务器的运行状况,自动屏蔽异常服务器,确保业务可用性。

用户可以为每个服务器组独立配置健康检查。每个服务器组默认开启健康检查。

  • 开启健康检查后,ALB会持续监控服务器组中所有后端服务器的运行状况,并自动将请求路由至健康检查正常的服务器。后端服务器需连续通过指定次数(健康阈值)的健康检查才会被判定为正常,以避免网络抖动导致的误判。

  • 当某台后端服务器健康检查出现异常时,ALB会自动将新的请求分发到其他健康检查正常的后端服务器。

  • 当该服务器恢复正常运行时,ALB会将其自动恢复到负载均衡服务中。

  • 健康检查为短连接,完成健康检查后连接将关闭。

  • 如果同一个服务器组中仅包含健康检查异常的服务器,ALB仍会尝试根据调度算法将请求路由至这些服务器,而不考虑这些服务器的运行状况,以最大可能避免业务受损。

说明
  • 如果后端服务器权重设置为0,该服务器不会参与健康检查。

  • ALB通过特定IP地址与后端服务器通信和健康检查,请确保后端服务器未屏蔽这些地址(包括iptables或安全策略软件):

    • ALB升级实例使用所在交换机网段的私网地址(Local IP)通信,可在实例详情页查看。

    • 升级前的ALB实例使用内网地址段100.64.0.0/10与后端服务器通信。

创建健康检查

控制台

  1. 前往ALB控制台的健康检查页面。

  2. 在顶部菜单栏选择目标地域后,单击创建健康检查。完成以下配置,然后单击创建

    • 健康检查名称:输入健康检查名称。

    • 协议:选择健康检查协议。

      • HTTP:通过发送HEAD或GET请求检查服务器应用是否健康。

      • HTTPS:通过发送HEAD或GET请求检查服务器应用是否健康。标准版和WAF增强版ALB实例支持,基础版不支持。

      • TCP:通过发送SYN握手报文检测服务器端口是否存活。

      • gRPC:通过发送POST或GET请求检查服务器应用是否健康。

    • 健康检查方法:仅在健康检查协议为HTTP、HTTPS或gRPC时可配置。

      • HEAD(HTTP/HTTPS默认):请确保后端服务器支持HEAD请求。不支持时可改用GET。

      • POST(gRPC默认):请确保后端服务器支持POST请求。不支持时可改用GET。

      • GET:响应报文超过8KB会被截断,但不影响健康检查结果判定。

    • 健康检查HTTP协议版本:支持HTTP1.0HTTP1.1。仅在健康检查协议为HTTP或HTTPS时可配置。

    • 端口:健康检查探测端口。默认为空,表示使用后端服务器端口。取值范围1~65535,仅支持填写一个端口号。

    • 路径:健康检查探测路径,如/health,建议指向静态页面。不填时默认探测根路径(/)。仅在健康检查协议为HTTP、HTTPS或gRPC时可配置。

    • 域名:健康检查域名。默认使用后端服务器内网IP。仅在健康检查协议为HTTP、HTTPS或gRPC时可配置。

    • 健康状态返回码:仅当探测请求返回指定状态码时判定为健康。仅在健康检查协议为HTTP、HTTPS或gRPC时可配置。

      • HTTP/HTTPS协议:可选http_2xxhttp_3xxhttp_4xxhttp_5xx。默认选择http_2xxhttp_3xx

      • gRPC协议:状态码范围0~99,最多支持20个范围值,多个值用半角逗号(,)隔开。

      警告

      将4XX或5XX纳入健康状态码可能导致故障实例无法被及时剔除。建议优先确保后端服务返回正确的2XX或3XX状态码。

    • 健康检查响应超时时间:后端服务器在指定时间内未返回正确响应,则判定为健康检查失败。取值范围1~300秒,默认5秒。

    • 健康检查间隔时间:两次健康检查的时间间隔。取值范围1~50秒,默认2秒。

    • 健康检查健康阈值:连续成功指定次数后判定为健康。取值范围2~10,默认3次。

    • 健康检查不健康阈值:连续失败指定次数后判定为不健康。取值范围2~10,默认3次。

    • 标签及资源组

      • 标签键标签值:以键值对形式标记健康检查,便于筛选管理。

      • 选择资源组:选择健康检查归属的资源组

健康检查创建完成后,可以在创建服务器组时,在健康检查配置中选择已创建的健康检查。

支持在创建服务器组时配置健康检查,并选中将新的配置保存为健康检查,方便下次快速复制使用。

API

  1. 调用CreateHealthCheckTemplate创建健康检查模板。

  2. 调用ApplyHealthCheckTemplateToServerGroup将健康检查模板应用到服务器组。

编辑健康检查

警告
  • 关闭健康检查后,ALB不再检查后端服务器,一旦某台后端服务器发生故障,则无法实现访问流量自动切换至其他正常的后端服务器。

  • 如延长健康检查的间隔时间,后端服务器出现故障时,ALB发现故障后端服务器的时间也会变长。

控制台

  1. 前往ALB控制台的健康检查页面。

  2. 找到目标健康检查,在操作列单击编辑

  3. 编辑健康检查对话框中,修改健康检查参数配置,然后单击保存

也可以在服务器组页面编辑健康检查

API

调用UpdateHealthCheckTemplateAttribute更新健康检查模板的属性。

查看健康检查状态

若ALB实例已配置监听且服务器组已开启健康检查,可以在监听页签查看后端服务器的健康检查状态。

控制台

  1. 前往ALB控制台的实例页面。

  2. 找到目标ALB实例,单击实例ID。

  3. 单击监听页签,在监听列表的健康检查状态列查看后端服务器的健康检查状态。

API

调用GetListenerHealthStatus查询监听的健康检查状态。

删除健康检查

控制台

  1. 前往ALB控制台的健康检查页面。

  2. 找到目标健康检查,在操作列单击删除

  3. 在弹出的删除对话框中,确认提示信息,然后单击确定

API

调用DeleteHealthCheckTemplates删除健康检查模板。

应用于生产环境

  • 创建专用健康检查端点:推荐创建专用接口(如/health),始终返回 HTTP 200 状态码。避免使用业务路径,业务路径可能因权限校验或资源不存在返回 4XX。

  • 健康检查失败时优先修复后端服务:排查并修复后端服务问题,使健康检查路径返回正确的 2XX 或 3XX 状态码,而非放宽状态码判定条件。

  • 合理配置健康检查参数:默认配置适用于大多数场景。如果后端服务启动较慢,可适当增大健康检查间隔或不健康阈值;如果网络延迟较高,可适当增大响应超时时间。

  • 使用 curl 命令模拟健康检查:排查健康检查问题时,可参考以下命令模拟 ALB 的健康检查行为,根据实际配置替换方法(HEAD/GET)、域名、IP和端口:

    curl -Iv -X HEAD --http1.0 -H "Host: your-domain.com" http://backend_ip:port/health_path

计费

健康检查不产生额外费用。ALB实例的计费规则请参见ALB计费说明

配额

一个地域最多支持50个健康检查模板,不支持提升。

相关文档