我启动了一个 beanstalk 多容器实例,它运行良好。然后我尝试设置动态端口映射并将主机端口设置为 0。我为 ec2 实例安全组允许端口范围为 32768 - 60999,并且我可以使用新分配的动态端口从浏览器/curl 访问 nginx。
因此,我创建了一个 ALB 和目标组来支持来自 ecs 服务的动态端口。例如,我可以直接通过公开访问 instance_public_id:33084 来访问该应用程序。
目前端口 80 上没有任何运行。因此,下图在这种情况下有效。但如果是动态端口,它应该可以工作。
应用程序负载均衡器将请求转发到上述目标组。
我尝试过的事情。
我通过 ssh 进入实例并在端口 80 上启动 SimpleHTTPServer。在目标组中,端口 80 状态按预期变为活动状态。我也可以从负载均衡器 DNS 访问它。
设置:每当向 /service/ 发送请求时发送电子邮件。(目前没有电子邮件)。虽然在点击 public_ip_instance:dynamic_port 时我收到了电子邮件。
还尝试允许实例附加的安全组中的所有边界流量。
仅供参考,我已将所有子网区域添加到 ALB,并且所有内容仅在一个默认 VPC 中运行。
我现在没什么主意了。有什么办法可以解决吗?
答案1
在节点上运行 TCPdump,查看是否有任何来自 ALB 的连接。同时检查是否存在阻止两者之间访问的 NACL。ALB 是否是可以通过该端口访问节点的安全组的成员?