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协议。