Nginx作为Web服务器一个重要的功能是反向代理,可用于管理从外部网络到内部网络的连接或任何特定请求。有些用户在本地socket测试无误后部署发现WebSocket connection to “xxx/xxx” failed ,导致Nginx反向代理的连接错误,这时该怎么解决?下面一起来了解下。
相关阅读:《Nginx反向代理服务器配置教程》
从1.3.13版本开始,Nginx实现了特殊的操作模式,如果代理服务器返回带有代码101(切换协议)的响应,并且客户端通过请求中的“Upgrade”标头。Upgrade和Connection在内的标头不会从客户端传递到代理服务器,因此为了让代理服务器了解将协议切换到WebSocket,需要在反向配置中Nginx Location中添加以下代码:
location /chat/ {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection “upgrade”;
}
一个更复杂的示例,代理服务器请求中的“Connection”标头字段的值取决于客户端请求标头中“Upgrade”字段的存在,例如:
http {
map $http_upgrade $connection_upgrade {
default upgrade;
” close;
}
server {
…location /chat/ {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}
默认情况下,如果Nginx代理服务器在60秒内没有传输任何数据,连接将会被关闭。这里我们可以使用proxy_read_timeout指令增加此超时,或者代码服务器可以配置为定期发送WebSocket ping帧以重置超时并检查连接是否仍然存在。
来源链接:https://www.idcspy.com/45211.html
本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。
免责声明:本站发布的内容(图片、视频和文字)以原创、来自本网站内容采集于网络互联网转载等其它媒体和分享为主,内容观点不代表本网站立场,如侵犯了原作者的版权,请告知一经查实,将立刻删除涉嫌侵权内容,联系我们QQ:712375056,同时欢迎投稿传递力量。
Copyright © 2009-2022 56dr.com. All Rights Reserved. 特网科技 特网云 版权所有 特网科技 粤ICP备16109289号
域名注册服务机构:阿里云计算有限公司(万网) 域名服务机构:烟台帝思普网络科技有限公司(DNSPod) CDN服务:阿里云计算有限公司 百度云 中国互联网举报中心 增值电信业务经营许可证B2
建议您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流浏览器浏览本网站