Nginx支持websocket的配置詳解
一、對wss與nginx代理wss的理解:
1、wss協議實際是websocket+SSL,就是在websocket協議上加入SSL層,類似https(http+SSL)。
2、利用nginx代理wss【通訊原理及流程】
- 客戶端發起wss連接連到nginx
- nginx將wss協議的數據轉換成ws協議數據並轉發到Workerman的websocket協議端口
- Workerman收到數據後做業務邏輯處理
- Workerman給客戶端發送消息時,則是相反的過程,數據經過nginx/轉換成wss協議然後發給客戶端
二、Nginx 支持websocket的配置
server { listen 80; server_name 域名; location / { proxy_pass http://127.0.0.1:8080/; // 代理轉發地址 proxy_http_version 1.1; proxy_read_timeout 3600s; // 超時設置 // 啟用支持websocket連接 proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } location /upload { // 靜態資源地址 root /mnt/resources; } }
重要的是這兩行,它表明是websocket連接進入的時候,進行一個連接升級將http連接變成websocket的連接。
proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade";
proxy_read_timeout; 表明連接成功以後等待服務器響應的時候,如果不配置默認為60s;
proxy_http_version 1.1; 表明使用http版本為1.1
到此這篇關於Nginx支持websocket的配置的文章就介紹到這瞭,更多相關Nginx websocket配置內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Nginx配置SSL和WSS步驟介紹
- Nginx源碼編譯安裝過程記錄
- 在MacOS+Linux+Nginx中發佈和部署Asp.Net Core
- flask和vue前後端分離項目部署的示例代碼
- CentOS系統rpm安裝Nginx和配置