弹性负载平衡器侦听器不适用于一个端口

Elastic Load balancer listener not working for one port

我有一个 Elastic Beanstalk Docker 容器 运行 一个 Sinatra 应用程序。使用 ebextensions,我在 EC2 盒子上有一个 haproxy 实例 运行 - 它将流量从端口 9090 转发到 docker_ip:application_port。设置工作正常,因为我能够在端口 9090 上卷曲 EC2 盒的 IP 并访问我的应用程序的端点(我也能够看到 haproxy 日志)

现在,我在 Elastic loadbalancer 上设置了一个额外的 tcp 侦听器,将端口 9090 转发到端口 9090(默认为端口 80 -> 端口 80)。但是,当我尝试访问 domain_name:9090 时,它超时了。如果我只是访问 domain_name 就可以了。关于如何调试负载平衡器侦听器未按预期工作的任何想法。

请注意,ELB 可见性设置为 public。


因此,我打开了负载均衡器的日志记录并直接访问了它的 DNS 名称。它记录了发送到端口 80 的请求,但没有记录发送到端口 9090 的请求。


另一个更新 - 我 运行 在端口 9090 上的 ec2 机器上的 tcpdump。它没有捕获我 运行 load_balancer_domain:9090

的任何数据包

已解决 - 我必须编辑负载均衡器上的安全组规则以允许实例的端口 9090 上的出站流量。

启用 ELB Access Logs 并向 AWS 生成的 ELB DNS 名称发送请求。检查 ELB 在 S3 存储桶中创建的日志文件。