弹性负载平衡器侦听器不适用于一个端口
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 存储桶中创建的日志文件。
我有一个 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 存储桶中创建的日志文件。