WebSocket 結合 Nginx 實現域名及 WSS 協議訪問-Nginx配置


特別提示:本人博客部分有參考網絡其他博客,但均是本人親手編寫過並驗證通過。如發現博客有錯誤,請及時提出以免誤導其他人,謝謝!歡迎轉載,但記得標明文章出處: http://www.cnblogs.com/mao2080/

1、基本配置

 1      upstream mqttServer {
 2         server mqttserverip1:8882 weight=1;
 3         server mqttserverip1:8882 weight=1;
 4         #check interval=3000 rise=2 fall=5 timeout=1000;
 5     }
 6     
 7     server {
 8         listen       443 ssl;
 9         server_name  localhost;
10         ssl on; //如果是Linux版本nginx需要配置此項,Windows版本nginx不需要配置
11         ssl_certificate      E:/project/nginx-1.13.6/certfile/pc.crt;
12         ssl_certificate_key  E:/project/nginx-1.13.6/certfile/pc.key;
13         ssl_session_cache    shared:SSL:1m;
14         ssl_session_timeout  5m;
15         ssl_ciphers  HIGH:!aNULL:!MD5;
16         ssl_prefer_server_ciphers  on;
17         location /mqtt {
18             proxy_pass http://mqttServer;
19             proxy_http_version 1.1;
20             proxy_set_header Upgrade $http_upgrade;
21             proxy_set_header Connection "upgrade";
22         }
23     }

2、為什么需要用wss?

Websocket使用 ws 或 wss 的統一資源標志符,類似於 HTTP 或 HTTPS,其中 wss 表示在 TLS 之上的 Websocket ,相當於 HTTPS 了。如:

ws://example.com/chat wss://example.com/chat

默認情況下,Websocket 的 ws 協議使用 80 端口;運行在TLS之上時,wss 協議默認使用 443 端口。其實說白了,wss 就是 ws 基於 SSL 的安全傳輸,與 HTTPS 一樣樣的道理。

如果你的網站是 HTTPS 協議的,那你就不能使用 ws:// 了,瀏覽器會 block 掉連接,和 HTTPS 下不允許 HTTP 請求一樣。

3、注意事項

需要做好CA證書,證書需要寫入指定的域名,不然會有問題。

4、參考網站

http://www.cnblogs.com/mafly/p/websocket.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM