Nginx反向代理配置websocket
nginx.org 官網推薦如下的配置,也可以直接看官網:http://nginx.org/en/docs/http/websocket.html
http { ... map $http_upgrade $connection_upgrade { default upgrade; '' close; ... } upstream websocket { #假如我們的upstream是127.0.0.1:8010, server 127.0.0.1:8010; } server { listen 80;
server_name test.testabc.com; access_log /var/log/nginx/test_websocket.access.log main; location / { proxy_pass http://websocket; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; } }
map指令的作用:
根據客戶端請求中$http_upgrade 的值,來構造改變$connection_upgrade的值
即根據變量$http_upgrade的值創建新的變量$connection_upgrade,
創建的規則就是{}里面的東西。其中的規則沒有做匹配,因此使用默認的.
即 $connection_upgrade 的值會一直是 upgrade。然后如果 $http_upgrade為空字符串的話,
那值會是 close。