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标头。