nginx下websocket的长连接问题

1.浏览器报错

2.解决问题

(1) 在nginx http中添加

http {

  map $http_upgrade $connection_upgrade {
  default upgrade;
  '' close;
  }

}

#在nginx的websocket中添加以下行

location /ws/ {

  proxy_pass http://172.16.3.3

  proxy_http_version 1.1;

  proxy_set_header Upgrade $http_upgrade;

  proxy_set_header Connection $connection_upgrade;

  proxy_read_timeout 600s;

}

3.参数说明

#Upgrade

能且只能在http1.1版本中使用, 用来标识协议升级/转换,HTTP的Upgrade协议头机制用于将连接从HTTP连接升级到WebSocket连接,Upgrade机制使用了Upgrade协议头和Connection协议头。

#Connection

Connection头信息取值upgrade, 表示本次请求是一次协议升级(协议转换)请求, 配合信息, 完整表达了这个请求要升级到websocket协议。

posted @ 2022-10-18 11:13  Leonardo-li  阅读(285)  评论(0编辑  收藏  举报