Nginx反向代理WebSocket

upstream ws {
    server 1.1.1.1:8888;
}
server {
     server_name aa.ym;
     listen 80;
     location / {
         proxy_pass http://ws;
         proxy_read_timeout 300s;
         proxy_send_timeout 300s;
         
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         
         proxy_http_version 1.1;
         proxy_set_header Upgrade $http_upgrade;
         proxy_set_header Connection $connection_upgrade;
     }
}

最重要的就是在反向代理的配置中增加了如下兩行

proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;

這里面的關(guān)鍵部分在于HTTP的請(qǐng)求中多了如下頭部:

Upgrade: websocket
Connection: Upgrade

這兩個(gè)字段表示請(qǐng)求服務(wù)器升級(jí)協(xié)議為WebSocket。服務(wù)器處理完請(qǐng)求后,響應(yīng)如下報(bào)文:

// 狀態(tài)碼為101
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: upgrade

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容