1. 程式人生 > >配置 Nginx 反向代理 WebSocket

配置 Nginx 反向代理 WebSocket

一般設定代理只需按以下來設定是沒有問題的,但是今天我們要操作的websockt

server {
location / {
proxy_pass http://127.0.0.1:10086;
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_set_header REMOTE-HOST $remote_addr;
proxy_http_version 1.1;
proxy_read_timeout 300s;
}
}

nginx -t 一下

會出現如下錯誤:

nginx: [emerg] unknown "connection_upgrade" variable

就是這裡出現了個坑

其中涉及到了一個nginx的設計問題 End-to-end and Hop-by-hop Headers
我在這裡還是不過多贅述了,以免誤人子弟

map在nginx中是為一個或多個變數設定對映表

下面是需要新增的幾項配置:

http {
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
location / {
#…
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}
}