我正在托管一个使用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通信正常进行。
此配置有什么问题?