Nginx反向代理到多个Websocket应用程序

时间:2020-04-19 13:02:09

标签: nginx websocket

我正在托管一个使用nginx的Web服务器,以充当使用websocket的多个应用程序的反向代理。

对于一个应用程序-我需要用户nginx输入http://my_domain.com/app1并定向到服务器上的http://127.0.0.1:7000/xyz/

以下nginx配置可以实现这一点。

server {

server_name my_domain.com;

location /app1/ {
    proxy_pass http://127.0.0.1:7000/xyz/;

    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";

    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Host $server_name;

}

}

http请求的定向正确,并且我可以看到页面正确加载-除了websockets通信不起作用。

当我通过以下方式配置nginx时:

location / {
    proxy_pass http://127.0.0.1:7000/;

    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";

    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Host $server_name; 
}

这会将应用程序映射到以下URL http://my_domain.com/xyz/,并且websockets通信正常进行。

此配置有什么问题?

0 个答案:

没有答案