Nginx反向代理WebSocket连接错误怎么解决

Nginx作为Web服务器一个重要的功能是反向代理,可用于管理从外部网络到内部网络的连接或任何特定请求。有些用户在本地socket测试无误后部署发现WebSocket connection to “xxx/xxx” failed ,导致Nginx反向代理的连接错误,这时该怎么解决?下面一起来了解下。

成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于做网站、成都网站设计、明水网络推广、小程序开发、明水网络营销、明水企业策划、明水品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联为所有大学生创业者提供明水建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com

相关阅读:《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帧以重置超时并检查连接是否仍然存在。


文章名称:Nginx反向代理WebSocket连接错误怎么解决
URL地址:http://myzitong.com/article/dcoes.html