websockets,NginX和AWS负载均衡器的问题

时间:2016-08-18 02:04:26

标签: node.js amazon-web-services nginx websocket socket.io

我有一个运行socket.io的Node.js服务器。我想从另一个Node.js服务器提供的网页连接到此服务器。对于两台服务器,我使用启用了SSL的AWS经典负载均衡器。我的证书是亚马逊发行的证书。

我设法使用轮询传输使其正常工作,但出于性能原因,我想使用websockets。但是,据我所知,Elastic Beanstalk的默认NginX配置不支持连接升级。

基于某些guides,我尝试了以下内容:

我已将此添加到.ebextensions/01_websockets_nginx.config

files:
    "/etc/nginx/conf.d/websocketupgrade.conf" :
        mode: "000755"
        owner: root
        group: root
        content: |
             proxy_set_header Upgrade $http_upgrade;
             proxy_set_header Connection "upgrade";

我的负载均衡器配置如下:

Load Balancer Protocol    Load Balancer Port    Instance Protocol     Instance Port

HTTP                      80                    HTTP                  80
HTTPS                     443                   HTTP                  80

但是当我访问我的客户端网页时,我在浏览器控制台中收到此消息:

  

Firefox无法在wss://.../socket.io/上建立与服务器的连接?EIO = 3& transport = websocket& sid = zNi1IqNWHYo3WwjgAAAB。

我尝试了各种不同的配置但没有成功。让它工作的秘诀是什么?

0 个答案:

没有答案