Socket.io无法在Node.js前面使用Nginx反向代理



我的节点应用程序在端口3000上运行。然后我使用nginx作为反向代理,用我的域的SSL为应用程序服务:

server {
        listen 443 ssl;
        ssl_certificate /etc/nginx/ssl/server.chain.crt;
        ssl_certificate_key /etc/nginx/ssl/server.key;
        server_name example.com;
        location / {
                proxy_pass http://localhost:3000;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection 'upgrade';
                proxy_set_header Host $host;
                proxy_cache_bypass $http_upgrade;
    }
}

我用以下行初始化客户端中的套接字:

var socket = io.connect('https://example.com/');

在服务器端有这条线:

var io = socket_io()
app.io = io

但当我启动我的应用程序时,我会出现以下错误:

WebSocket connection to 'wss://example.com/socket.io/?EIO=3&transport=websocket&sid=jVNRhDOYJD20l9U-AAAA' failed: Error during WebSocket handshake: Unexpected response code: 502

你知道如何纠正这个错误吗?

本文描述了在Kaazing WebSocket服务器前使用nginx作为rev代理。

https://kaazing.com/kaazing-and-nginx-the-best-of-both-worlds/

文章中描述的配置可能与使用NodeJS作为服务器非常相似。希望能有所帮助。

相关内容

  • 没有找到相关文章

最新更新