我有一个作为 AWS ECS Fargate 任务运行的 Web 应用程序。该任务由 2 个 Docker 容器组成 - 暴露端口 80 的 nginx,作为反向代理运行,将查询转发到暴露端口 5000 的 asp.net 核心 Web 应用程序。在 nginx.conf 中为上游服务器配置的 url 是 127.0.0.1:5000,以及该任务是使用容器网络 (awsvpc) 设置的。
ECS 服务被定义为一个由 1 个任务组成的自动缩放组。当我运行该服务时,AWS 设置了一个具有公共和私有 ip 的弹性 ENI。我可以在浏览器中点击该公共 ip 并从我的网络应用程序中获取响应,因此 ECS 部分似乎设置正确。
接下来 - 我定义了一个带有 http 端口 80 侦听器的 ALB,该侦听器转发到 ECS 服务的目标组。目标组显示任务 ENI 的私有 ip,因此它似乎设置正确。健康检查被配置为简单的“/”,并且任务和 ALB 目标组报告它们是健康的。
但是 - 当我导航到 LB 的 DNS 名称时,我无法得到响应。
此外 - 这是在非默认 VPC 中运行的。路由表包括一个IGW。
不知道我还应该检查什么,所以希望能在进一步故障排除方面提供一些帮助。