You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ECS Fargate部署Nest.js遇502 Bad Gateway错误,Target Groups状态正常

ECS Fargate部署Nest.js出现502 Bad Gateway的排查思路
  • 确认Target Group的流量转发配置:检查Target Group的「目标端口」是否确实设置为3000,同时确认转发协议与Nest.js服务一致(Nest.js默认是HTTP,不要误设为HTTPS)。健康检查端口正确不代表转发端口也正确。

  • 验证Nest.js的监听地址:确保代码中监听的是0.0.0.0而非localhost,比如启动代码应为app.listen(3000, '0.0.0.0')。如果只监听localhost,容器内部健康检查能通过,但外部LB无法访问。可以通过docker exec进入容器,执行curl <任务ENI_IP>:3000测试连通性。

  • 检查LB到任务的网络连通性:

    • 用VPC Reachability Analyzer验证LB的侦听器端口到任务ENI的3000端口的连通性,排查路由表、NACL是否存在限制。
    • 在容器内执行tcpdump port 3000,然后从LB的IP发起请求,观察是否有数据包进入容器。
  • 查看LB访问日志:启用负载均衡器的访问日志,查看日志中的target_port、response_code、error_reason字段,明确是连接失败、超时还是目标返回了异常状态码。

  • 确认任务ENI的安全组配置:Fargate awsvpc模式下,任务的ENI会使用单独的安全组,需确保该安全组允许LB安全组的IP访问3000端口,不要仅依赖服务层面的安全组配置。

  • 测试直接访问任务端点:在VPC内的EC2实例或bastion主机上,直接访问任务的ENI IP:3000。如果能正常返回,问题出在LB的侦听器或转发规则;如果不能,排查任务本身的网络配置或服务启动状态。

  • 检查LB侦听器规则:确认HTTPS侦听器绑定了有效的SSL证书,转发规则指向了正确的Target Group,没有设置错误的路径匹配规则(比如误将所有请求转发到不存在的路径)。

内容的提问来源于stack exchange,提问作者glothos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 13:47:24