我正在尝试在 ECS Fargate 中部署 Nest.js 应用程序。由于某些奇怪的原因,我不断收到 502 Bad Gateway 错误。所有目标组都报告健康状态,任务报告健康状态,我的负载均衡器安全组允许在 80 和 443 端口上进行连接。服务安全组允许来自 LB 在端口 3000(这是应用程序运行的端口)上的连接。
从任务日志中我可以看到健康检查机制实际上记录了请求并返回 OK。唯一可能不同的是我覆盖健康检查的端口以实际使用端口 3000。
应用程序在容器内不包含代理,它只是一个简单的 Nest.js API。
我尝试在目标组本身上设置端口 3000,但仍然没有成功。我尝试了很多方法,并使用不同的参数一遍又一遍地重新创建服务和负载均衡。尝试将 TG 上的端口设置为 3000,而不是默认的 HTTP 和 HTTPS 协议端口。任何人都可以阐明这个问题,我们将不胜感激。
我设法解决了这个问题。由于某种原因,看起来我不应该为同一服务创建两个目标组。我有:
- Target Group 1: port 80
- Target Group 2: port 443
- Listener 1: port 80, target group 1
- Listener 2: port 443, target group 2
删除
Target Group 2
并将 Listener 2
指向 Target Group 1
解决了问题。