我拥有一个运行 PHP 和 Node.js socket.io
(显示脚本)。但是,我想为此实例设置一个弹性负载均衡器(仅用于测试,因为稍后我会将它与 Auto Scaling 一起使用),因此我使用以下设置创建了目标组:www.mydomain.com
www.mydomain.com:8000/socket.io/socket.io.js
socket.io
之后,我在 Target Group 中注册了该实例,并且状态检查运行良好:
因此,在我的负载均衡器(Application Load Balancer 而不是 Classic Load Balancer)中,我添加了以下侦听器(如果我删除 8000 侦听器,当我访问DNS:8000
或DNS:8000/socket.io/socket.io.js
不显示任何内容时,仅显示错误ERR_CONNECTION_REFUSED
):
在此负载均衡器的安全组中,我还添加了端口 80 和 8000:
因此,当访问负载均衡器的 DNS 名称时,它通常会显示网站,但是,如果我尝试访问DNS:8000/socket.io/socket.io.js
它,它会重写 URLDNS:8000
并继续显示网站,而不是socket.io
脚本。我已经尝试将路径模式添加/socket.io/*
到 8000 侦听器,但它继续以相同的方式。那么,我该怎么做才能显示socket.io
脚本?
您有一个目标组指向您的实例上的端口 80。您已将该目标组附加到两个侦听器。
相反,您需要两个目标组分别注册您的实例,一个以 8000 为目标,另一个以 80 为目标。然后,您需要将这些目标组分别附加到 80 和 8000 侦听器。