Nginx作为WebSocket代理提供无效的URL前缀错误

时间:2017-10-07 09:18:16

标签: nginx-reverse-proxy

我们在将Nginx配置为Web应用程序中的webSocket代理时遇到问题。我们在nginx.conf中添加了与websockets相关的以下配置:

map $http_upgrade $connection_upgrade {
    default upgrade;
    '' close;
}

upstream websocket {
    server 234.61.34.23:3389;
}

location /websocket-tunnel/connect/ {
        proxy_read_timeout 86400;
        proxy_redirect off;
        proxy_pass http://websocket;
        proxy_buffering off;
        proxy_http_version 1.1;
        add_header Upgrade $http_upgrade;
        add_header Connection "upgrade";
        add_header Host $host;
        add_header X-Real-IP $remote_addr;
        add_header X-Forwarded-For $proxy_add_x_forwarded_for;
        add_header X-Forwarded-Server $host;    
    }

234.61.55.59:8090 - 是IP地址&安装并运行Nginx的机器的端口。

234.61.34.23:3389 - 是IP地址&要连接的后端系统的端口。

现在,从Web应用程序中的javascript代码,我们正在创建websocket并生成以下请求URL:

WSS://234.61.55.59:8090 / WebSocket的隧道/连接ID = 12345

现在在Nginx error.log中收到以下错误

[error] 9516#33264:* 396“ws:// websocket / websocket-tunnel / connect?id = 12345”中的无效网址前缀

nginx websocket配置中是否有任何遗漏?有关解决此错误的任何建议,请

0 个答案:

没有答案