我在负载均衡器后面有一个 EC2 实例,它未通过健康检查。当我查看目标组/目标时,实例显示状态:不健康,状态详细信息:健康检查失败。
实例本身没有问题。我该如何排除/调试此问题?
负载均衡器确实将请求路由到端口 8081 上的实例,并且它们正常工作。应用程序运行正常。我猜是因为负载均衡器将“失败打开”。
健康检查 URL 是
http://my_host_name:8082/healthcheck
。当我绕过负载均衡器直接访问该 URL(使用 IP 地址作为主机名)时,我得到了 200 OK。目标组健康检查设置:HTTP,端口:8082,路径:/healthcheck。据我所知,一切正确。
实例上的请求日志根本没有显示它正在接收对 /healthcheck 的调用。
我使用的是默认 VPC 安全组,该安全组的默认规则是允许来自安全组中其他实例的所有流量。我已检查实例和负载均衡器均在安全组中。两者都在同一个 VPC 中。
该实例位于可用区 us-east-2c。我确认负载均衡器包含该区域。(我无法分辨负载均衡器本身位于哪个区域。arn 只显示 us-east-2。)
负载均衡器转发到正确的目标组。
我猜测这与应用程序位于:8081 并且健康检查位于:8082 有关,但我确实认为我配置正确。
我这里遗漏了什么?我该如何调试它?
答案1
健康检查从负载均衡器启动。如果您的负载均衡器安全组没有出站规则,或者现有出站规则不允许连接到 EC2 流量端口,则您的目标组健康检查将失败。
确保您的负载均衡器安全组至少具有 1 条出站规则,允许流量到 EC2 实例端口 8082。