Nginx配置支持WS协议

483 阅读1分钟

location配置:

location / {
	proxy_pass http://xxx:80;
	proxy_http_version 1.1;
	proxy_set_header Upgrade $http_upgrade;
	proxy_set_header Connection "upgrade";
}

请求头信息:

GET /test HTTP/1.1
Host: example.com:8000
Upgrade: websocket
Connection: Upgrade

解释:

Connection: Upgrade 表示Upgrade是一个hop-by-hop的请求头。 

Upgrade: websocket 表示浏览器想要升级到WebSocket协议。

扩展:

为了定义缓存和非缓存代理的行为,咱们将 HTTP 标头分为两类: 

End-to-end headers,必须传输到申请或响应的最终接收者。响应中的端到端标头必须作为缓存条目标一部分存储,并在从缓存条目造成的任何响应中传输。

Hop-by-hop headers,仅对单个传输级连贯有意义,不禁缓存存储或由代理转发。

以下 HTTP/1.1 标头是逐跳标头:

Connection
Keep-Alive
Public
Proxy-Authenticate
Transfer-Encoding
Upgrade

HTTP/1.1 定义的所有其余标头都是End-to-end标头。