在nginx下配置Websocket的proxy_pass还是很方便的。几乎和默认的proxy_pass一致,只要加两行代码:
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
如果对http_upgrade和$connection_upgrade的变量有自定义,可以这样写:
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
如果不熟悉map的用法,这里有一篇中文的说明:https://blog.51cto.com/tchuairen/2175525,
至此,一个websocket 就配置好了,但偶尔你可能还是会发现ws会断开,所以最好设置一下超时时间。比如5分钟?
proxy_read_timeout 300s;
proxy_send_timeout 300s;
毕竟网络不好的时候。。30s或者60s是真有可能会数据发出去收不到的。干脆延长一点吧。
参考:
1、https://www.xncoding.com/2018/03/12/fullstack/nginx-websocket.html

评论 (0)
暂无评论