proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade";
-
proxy_set_header Upgrade $http_upgrade;
:- 這個指令設置代理服務器將請求頭中的 "Upgrade" 字段的值設爲客戶端請求頭中的相應值。"Upgrade" 是 HTTP/1.1 協議中的一個頭部字段,用於指定要升級到的協議。在 WebSocket 連接中,客戶端會在請求頭中包含 "Upgrade: websocket",表示希望升級到 WebSocket 協議。
$http_upgrade
是一個 Nginx 變量,它包含客戶端請求頭中 "Upgrade" 字段的值。通過將代理服務器的 "Upgrade" 字段設置爲相同的值,Nginx 就能正確地轉發 WebSocket 的 "Upgrade" 請求。
-
proxy_set_header Connection "upgrade";
:- 這個指令設置代理服務器將請求頭中的 "Connection" 字段的值設爲 "upgrade"。"Connection" 字段指示客戶端請求是否需要保持持久連接。在 WebSocket 連接中,客戶端通常在請求頭中包含 "Connection: upgrade",表示希望與服務器建立持久連接,並請求升級到 WebSocket 協議。
- 將代理服務器的 "Connection" 字段設置爲 "upgrade" 使得 Nginx 能夠正確地識別客戶端請求,從而進行協議升級。