author: headsen chen
date: 2019-08-08 18:52:36
notice :個人原創
Nginx通過在客戶端和后端服務器之間建立隧道來支持WebSockets通信。為了讓Nginx可以將來自客戶端的Upgrade請求發送到后端服務器,Upgrade和Connection的頭信息必須被顯式的設置。如下所示:
location /wsapp/ { proxy_pass http://wsbackend; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; }
一旦我們完成以上設置,Nginx就可以處理WebSocket連接了。
生產配置實例:
[root@beta-aaa01:/usr/local/openresty/nginx/conf/locations]$cat location aaa.bbbb.cn.conf location / { proxy_pass http://10.0.0.3:8702/; proxy_http_version 1.1; proxy_redirect off; proxy_buffering off; proxy_set_header X-NginX-Proxy true; proxy_set_header Host $host; proxy_set_header Http-Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; }