我正在弹性beantalk中运行一个应用程序负载平衡器。我有一个运行php和apache的ec2实例。如果我访问http://example.com,则可以访问该网站。我已经在同一台机器上使用node和socket.io配置了套接字服务器。 (这是使用.ebextensions和pm2安装并守护的)。套接字守护程序正在端口8000上运行。
我在eb负载平衡器配置中为端口8000添加了listener
。这会自动以rule
8000创建一个listener port
问题是,当我进入http://example.com:8000时,网页上的响应就好像我进入http://www.example.com
我可以停止套接字守护程序,并仍然加载http://example.com:8000,它会响应网站。看来loadbalancer正在侦听端口8000,但将其路由到ec2实例端口80
我希望将端口8000上的传入请求转发到应在我的套接字服务器上运行的ec2实例端口8000上,但这不会发生。
这是负载均衡器的日志输出
http 2019-03-20T19:09:59.541171Z app/awseb-AWSEB-9GXN3SC7L5SW/e13ff49d239ea88e
184.xx.xxx.xxx:58786 172.xx.xx.197:80 0.000 0.008 0.000 404 404 520 32879
"GET http://www.example.com:8000/?EIO=3&transport=polling&t=McSWbag HTTP/1.1" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36" - - arn:aws:elasticloadbalancing:us-east-2:xxxxxxxx:targetgroup/awseb-AWSEB-xxxxxx/xxxxxxx "Root=1-xxxxx-xxxxxxxx" "-" "-" 0 2019-03-20T19:09:59.532000Z "forward" "-" "-"
我不确定日志的读取方式,但是在第二行,我注意到:172.xx.xx.197:80
是我的ec2实例的私有ip,它显示端口80
答案 0 :(得分:0)
显然,我需要添加一个命中端口8000的新Process
,然后将Rule
配置为使用该Process