每当我试图在aws (通过copilot)重新部署负载平衡服务时,我总是会收到健康检查失败(502坏网关),下面是错误消息:
(service my-app-my-env-my-service-Service-n6SienH8zSJt) (port 3000) is unhealthy in
(target-group arn:aws:elasticloadbalancing:us-east-1:[my target grouo]) due to (reason Health checks failed). 我有一个集群(ECS),其中包含两个服务(一个后端服务完全正常工作,然后一个负载平衡服务导致问题),每个服务运行一个任务(Fargate)。负载平衡服务是一个流星/节点应用程序,它正在监听端口3000。
弹性负载均衡器(应用程序)正在侦听端口80,它应该将流量转发到上述服务的目标组,该服务应该在端口3000上侦听。
负载平衡服务的目标组有:
这个组的目标有自己的IP地址,端口3000。
目标类型: ip地址,因为我在任务中使用的是fargate而不是EC2。因此,当任务打开时,我正确地看到任务的私有IP注册到目标组中。
几个注意事项:
/_health路由,并在本地工作(通过curl请求获取200状态到localhost:3000/_之间存在问题。
坚持了一个星期,所以如果有人知道我错过了什么,那将是特别有帮助的!我很高兴分享更多关于我的集群的信息,如果这会有帮助的话!(预先谢谢:)
发布于 2021-12-16 17:27:46
副驾驶名单中健康检查路线的映射是什么?
默认情况下,copilot将健康检查配置为目标“/”。
发布于 2021-12-16 18:23:06
我对此感到很傻,但我很确定我找到了解决办法。虽然我正确地在manifest.yml中的映像上配置了manifest.yml,但在清单的变量中需要一个名为PORT: 3000的额外环境变量。这看起来很管用..。就像我说的愚蠢的错误!
https://stackoverflow.com/questions/70383025
复制相似问题