如何调试 AWS 负载均衡器失败的健康检查?

如何调试 AWS 负载均衡器失败的健康检查?

我在负载均衡器后面有一个 EC2 实例,它未通过健康检查。当我查看目标组/目标时,实例显示状态:不健康,状态详细信息:健康检查失败。

实例本身没有问题。我该如何排除/调试此问题?

  1. 负载均衡器确实将请求路由到端口 8081 上的实例,并且它们正常工作。应用程序运行正常。我猜是因为负载均衡器将“失败打开”。

  2. 健康检查 URL 是http://my_host_name:8082/healthcheck。当我绕过负载均衡器直接访问该 URL(使用 IP 地址作为主机名)时,我得到了 200 OK。

  3. 目标组健康检查设置:HTTP,端口:8082,路径:/healthcheck。据我所知,一切正确。

  4. 实例上的请求日志根本没有显示它正在接收对 /healthcheck 的调用。

  5. 我使用的是默认 VPC 安全组,该安全组的默认规则是允许来自安全组中其他实例的所有流量。我已检查实例和负载均衡器均在安全组中。两者都在同一个 VPC 中。

  6. 该实例位于可用区 us-east-2c。我确认负载均衡器包含该区域。(我无法分辨负载均衡器本身位于哪个区域。arn 只显示 us-east-2。)

  7. 负载均衡器转发到正确的目标组。

我猜测这与应用程序位于:8081 并且健康检查位于:8082 有关,但我确实认为我配置正确。

我这里遗漏了什么?我该如何调试它?

答案1

健康检查从负载均衡器启动。如果您的负载均衡器安全组没有出站规则,或者现有出站规则不允许连接到 EC2 流量端口,则您的目标组健康检查将失败。

确保您的负载均衡器安全组至少具有 1 条出站规则,允许流量到 EC2 实例端口 8082。

相关内容