【发布时间】:2022-01-19 18:43:55
【问题描述】:
每当我尝试在 aws 中重新部署负载平衡服务(通过 copilot)时,我都会不断收到运行状况检查失败(502 bad gateway)的错误消息:
(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
- IP 地址类型:IPv4
- 协议:端口 -- HTTP:3000
- 协议版本:HTTP1
该组的目标有自己的 IP 地址,端口为 3000。
目标类型:IP 地址,因为我使用 Fargate 而不是 EC2 来完成我的任务。所以当任务开启时,我正确地看到任务的私有 IP 注册到目标组中。
几点说明:
- 服务器正在正确启动。我收到的日志表明服务器正常,并且没有出现任何错误
- 我有一个
/_health路由,我设置并在本地工作(通过对 localhost:3000/_health 的 curl 请求获取我的 200 状态)。我非常确信 NO 路由正在工作,因为我更改了我的应用程序以呈现静态页面,而不管路由如何并且仍然存在连接问题。这让我觉得问题出在负载均衡器和服务之间
已经坚持了一周,所以如果有人知道我错过了什么,那将特别有帮助!如果有帮助,我很乐意分享有关我的集群的更多信息!在此先感谢:)
【问题讨论】:
标签: node.js amazon-web-services meteor amazon-ecs aws-copilot