说明

  • Nginx 在 1.3 以后的版本才支持 websocket 反向代理,所以要想使用支持 websocket 的功能,必须升级到 1.3 以后的版本
  • NGINX 通过允许一个在客户端和后端服务器之间建立的隧道来支持 WebSocket。为了 NGINX 发送来至于客户端 Upgrade 请求到后端服务器,Upgrade 和 Connection 头部必须被设置明确

参考

nginx 反向代理 WebSocket

NGINX as a WebSocket Proxy

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
http {
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}

upstream websocket {
server 192.168.100.10:8010;
}

server {
listen 8020;
location / {
proxy_pass http://websocket;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $host;
}
}
}