我有一个运行Sinatra应用程序的Elastic Beanstalk Docker容器 . 使用ebextensions,我在EC2盒子上运行了一个haproxy实例 - 它将流量从端口 9090
转发到 docker_ip:application_port
. 设置工作正常,因为我能够在端口 9090
上卷曲EC2框的IP并点击我的应用程序的 endpoints (我也能看到haproxy日志)
现在,我在Elastic loadbalancer上设置了一个额外的tcp监听器,将端口9090转发到端口9090(默认端口为80 - >端口80) . 但是,当我尝试访问 domain_name:9090
时,它会超时 . 如果我只是访问 domain_name
它的工作原理 . 关于如何调试负载均衡器监听器无法按预期工作的任何想法 .
请注意,ELB可见性设置为公共 .
因此,我打开了负载均衡器的日志记录并直接访问了它的DNS名称 . 它记录了发送到端口80的请求,但没有记录发送到端口9090的请求 .
另一个更新 - 我在端口9090上的ec2盒子上运行了一个tcpdump . 它没有捕获我运行的任何数据包 load_balancer_domain:9090
Solved - 我必须编辑负载均衡器上的安全组规则,以允许实例的端口9090上的出站流量 .
1 回答
启用ELB Access Logs并向AWS生成的ELB DNS名称发送请求 . 检查ELB在S3存储桶中创建的日志文件 .