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!

推薦閱讀: