You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS ALB健康检查失败但EC2主机可用问题求助

排查ALB目标组健康检查失败的方案

以下是针对问题的具体排查步骤:

  1. 查看Apache日志定位请求状态
    登录EC2实例,检查Apache的访问日志(路径通常为/var/log/httpd/access_log),寻找ALB健康检查的请求记录。ALB健康检查的IP属于VPC的ALB前缀列表,你可以通过日志确认:

    • 健康检查请求是否成功到达EC2实例
    • 请求的路径、Host头参数
    • 实例返回的HTTP状态码(若状态码不在200-399范围内,就是直接原因)
      同时检查错误日志(/var/log/httpd/error_log),排查是否有相关的服务报错。
  2. 修正健康检查的Host头配置
    从你内部curl的结果可以看到,WordPress返回的Link头使用的是公网IP,说明站点配置的URL是公网IP。而ALB默认健康检查的Host头是实例的私有IP,若Apache或WordPress对Host头有校验,会导致健康检查请求异常。
    你可以修改目标组的健康检查设置:在高级健康检查设置中手动指定Host头为你的EC2公网IP,或者实例私有IP172.31.21.213,然后观察健康状态是否更新。

  3. 确认健康检查的响应匹配规则
    如果你使用/health-check.txt作为健康检查路径,需确认目标组的健康检查配置:

    • 默认仅校验状态码在200-399之间,若你开启了匹配正文选项,必须填入正确的匹配文本(如I am healthy.),否则会被判定为检查失败。
  4. 检查VPC网络ACL规则
    虽然EC2安全组允许0.0.0.0/0的80端口入站,但VPC的网络ACL是无状态的,需要同时配置:

    • 入站规则:允许来自ALB IP段的80端口流量
    • 出站规则:允许EC2返回响应的临时端口流量
      确认网络ACL没有拦截健康检查的流量。
  5. 切换健康检查的请求类型
    目标组默认使用HEAD请求,部分Web应用或配置可能对HEAD请求有特殊限制。你可以尝试将健康检查的请求类型改为GET,再测试健康状态是否恢复。


内容的提问来源于stack exchange,提问作者BogeyMan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 18:20:37