nginx代理websocket
1、非默认端口情况下。协议头Host需带上端口proxy_set_header Host $host:$server_port;
1、streamlit要求协议头Origin、Host一致(注:两者格式不同)。
2、协议版本要求proxy_http_version 1.1;
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 10.10.18.178:8501;
server_name _;
location / {
proxy_pass http://10.10.18.178:8501/;
proxy_http_version 1.1;
proxy_set_header Host www.example.com:$server_port;
proxy_set_header Origin http://www.example.com:$server_port; # streamlit要求
proxy_set_header x-forwarded-proto $scheme;
proxy_set_header x-real-ip $remote_addr;
proxy_set_header x-forwarded-for $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}