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

Amazon web services 弹性负载平衡器侦听器不适用于一个端口,amazon-web-services,amazon-ec2,load-balancing,amazon-elastic-beanstalk,Amazon Web Services,Amazon Ec2,Load Balancing,Amazon Elastic Beanstalk,我有一个运行Sinatra应用程序的弹性Beanstalk Docker容器。使用ebextensions,我在EC2盒上运行了一个haproxy实例,它将流量从端口9090转发到docker\u ip:application\u端口。设置工作正常,因为我可以在端口9090上卷曲EC2盒的IP,并点击我的应用程序的端点(我还可以看到haproxy日志) 现在,我在Elastic loadbalancer上设置了一个额外的tcp侦听器,将端口9090转发到端口9090(默认为端口80->端口80)

我有一个运行Sinatra应用程序的弹性Beanstalk Docker容器。使用ebextensions,我在EC2盒上运行了一个haproxy实例,它将流量从端口
9090
转发到
docker\u ip:application\u端口
。设置工作正常,因为我可以在端口
9090
上卷曲EC2盒的IP,并点击我的应用程序的端点(我还可以看到haproxy日志)

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

注意,ELB可见性设置为“公共”


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


另一个更新-我在端口9090的ec2盒上运行了tcpdump。它没有捕获我运行的任何数据包
load\u balancer\u domain:9090



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

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

感谢您的建议。如上所述,负载平衡器记录发送到端口80的请求,但不记录发送到端口9090的请求:(您的EC2实例是否已在ELB和
InService
中注册?此外,它是否必须是TCP侦听器?您能否将其更改为HTTP?是的,它是。此外,我在原始问题中做了一个小的编辑-默认侦听器(端口80->端口80)工作。只有附加的侦听器(端口9090->端口9090)失败。检查ELB的安全组和VPC的NACL以确保TCP 9090未被阻止。太棒了,这修复了它。我不得不修改负载平衡器上的安全组,以允许在端口9090上传入和传出请求!这救了我的命。我一直在寻找负载平衡器为什么不发送流量thr对于实例,我没有考虑检查出站流量规则。谢谢!在我的例子中,我已将端口添加到安全组规则中,但在尝试连接IPv4时,只允许通过IPv6进行访问。