gpt4 book ai didi

node.js - Aws ec2 - 如何设置负载均衡器以匹配 ec2 实例上的 docker 容器

转载 作者:行者123 更新时间:2023-12-05 06:02:41 25 4
gpt4 key购买 nike

背景
我有一个 EC2 实例和一个在端口 3030 上运行的 docker 容器。

在我的 docker 容器中,有一个包含 REST api 设置的 nodejs 服务器。

我只是创建了一个带有目标组 (HTTP: 80) 的应用程序负载均衡器,它指向上面的 ec2 实例,以便设置公共(public) http 端点来发送 api 请求

负载均衡器的 DNS 名称是 my-docker-test-server-dev-123456789.ap-southeast-1.elb.amazonaws.com。

问题
我尝试发送 http 请求 POST https://my-docker-test-server-dev-123456789.ap-southeast-1.elb.amazonaws.com/login
为了在 Postman 上尝试登录 api,但是出现错误

HTTP 504: Gateway timeout

更新
我正在为我的负载均衡器使用默认安全组。

入站规则

Type Protocol Port range Source Description - optional
All traffic All All 0.0.0.0/0 –
All traffic All All ::/0 –
All traffic All All sg-d987a2bc / default –

更新 2
现在按照评论的建议更新目标组以指向 HTTP:3030,但仍然出现相同的错误。

组的健康检查:

unhealthy
Request timed out

更新 3
EC2 实例 > 安全

入站规则

Port range Protocol   Source      Security groups
22 TCP 0.0.0.0/0 launch-wizard-9

最佳答案

基于评论。

问题是由实例的安全组 (SG) 和目标组 (TG) 端口设置不正确造成的。在第一种情况下,由于 docker 应用程序在实例上的端口 3030 上公开,因此 SG 必须允许该端口上的入站流量。 缺少入站 SG 规则

在TG案例中,原来的流量端口是80,但是由于docker工作在3030端口,所以需要将TG端口改为3030端口。

所以流量看起来如下:

Clinet ---(HTTP:80) ---> ALB ---> TG --- (HTTP:3030) ---> Instance with docker on port 3030

关于node.js - Aws ec2 - 如何设置负载均衡器以匹配 ec2 实例上的 docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66864290/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com