目标组因 503 错误而耗尽并且无法通过 AWS 中的域名访问端口 3001
Traget Group draining with 503 error and Unable to access port 3001 through domain name in AWS
我是 AWS 的新手,我试图使用 ECS 和 Docker 在 EC2 上托管完整的 MERN 应用程序。在我的项目中,我有单独的前端和后端模块。在 ECS 中,我创建了 2 个任务 (EC2),前端和后端各 1 个。在前端,我添加了一个容器,它有端口映射到 80 to 80
的主机映射。另外,添加了一些环境变量。对于后端,我添加了 2 个带有端口映射的容器以托管 3001 to 3001
和 27017 to 27017
的映射。我还添加了链接和主机名。
我为前端任务和后端任务分配了 512 任务内存 (MiB) 和 512 CPU 单元,这些值为 128 MiB 和 128 单元。
然后,我创建了 2 个负载均衡器和 2 个目标组,前端 LB 在端口 80 和 443 上有一个监听器,后端 LB 在 3001 和 443 上有一个监听器。
前端的目标群体 protocol:port 为 http:80,而后端的目标群体为 http:3001。
我还创建了 2 条单独的路线并链接到 2 LB 中的每一条。然后我用各自的任务和 LB 创建了 2 个服务。我现在遇到的问题是后端服务。前端工作正常。我可以通过 public IP 和域名(Route 53)访问,但后端只能使用 public IP。所以,基本上,http://x.x.x.x:3001/api works, but https://domain.name/api 不起作用。它显示 503 Temporary Service unavailable
.
我确实尝试找到问题所在,目标组(后端)正尝试在端口 3001 上注册实例,但它一直失败。同样令人惊讶的是,当目标注册开始并处于 initial
阶段时,域名也有效,但是,然后它进入 unhealthy(Failed due to 404)
阶段,然后域显示 502 bad gateway
错误。然后,目标开始 draining
,之后显示 503 Temporary Service unavailable
。
安全组的80、3001、22、443端口我也都打开了
有人知道为什么会这样吗?这可能吗?我需要 post 更多详细信息吗?
谢谢!!!
好的,所以,我能够解决这个问题。做了一些挖掘后发现,每个人都在谈论 Target Group 的健康检查 urls,所以,我将健康检查 url 从 /
更改为 /backendhealth
。然后,在 Advanced Health Settings 中,我还将端口设置从 Traffic Port
更改为 Override
到 80
端口,它成功地在端口 3001 上注册了相应集群的 EC2 实例。
松了一口气!!!
我是 AWS 的新手,我试图使用 ECS 和 Docker 在 EC2 上托管完整的 MERN 应用程序。在我的项目中,我有单独的前端和后端模块。在 ECS 中,我创建了 2 个任务 (EC2),前端和后端各 1 个。在前端,我添加了一个容器,它有端口映射到 80 to 80
的主机映射。另外,添加了一些环境变量。对于后端,我添加了 2 个带有端口映射的容器以托管 3001 to 3001
和 27017 to 27017
的映射。我还添加了链接和主机名。
我为前端任务和后端任务分配了 512 任务内存 (MiB) 和 512 CPU 单元,这些值为 128 MiB 和 128 单元。
然后,我创建了 2 个负载均衡器和 2 个目标组,前端 LB 在端口 80 和 443 上有一个监听器,后端 LB 在 3001 和 443 上有一个监听器。
前端的目标群体 protocol:port 为 http:80,而后端的目标群体为 http:3001。
我还创建了 2 条单独的路线并链接到 2 LB 中的每一条。然后我用各自的任务和 LB 创建了 2 个服务。我现在遇到的问题是后端服务。前端工作正常。我可以通过 public IP 和域名(Route 53)访问,但后端只能使用 public IP。所以,基本上,http://x.x.x.x:3001/api works, but https://domain.name/api 不起作用。它显示 503 Temporary Service unavailable
.
我确实尝试找到问题所在,目标组(后端)正尝试在端口 3001 上注册实例,但它一直失败。同样令人惊讶的是,当目标注册开始并处于 initial
阶段时,域名也有效,但是,然后它进入 unhealthy(Failed due to 404)
阶段,然后域显示 502 bad gateway
错误。然后,目标开始 draining
,之后显示 503 Temporary Service unavailable
。
安全组的80、3001、22、443端口我也都打开了
有人知道为什么会这样吗?这可能吗?我需要 post 更多详细信息吗?
谢谢!!!
好的,所以,我能够解决这个问题。做了一些挖掘后发现,每个人都在谈论 Target Group 的健康检查 urls,所以,我将健康检查 url 从 /
更改为 /backendhealth
。然后,在 Advanced Health Settings 中,我还将端口设置从 Traffic Port
更改为 Override
到 80
端口,它成功地在端口 3001 上注册了相应集群的 EC2 实例。
松了一口气!!!