背景:玩swoole 服務
使用Nginx反向代理解決wss問題。
即客戶端通過wss協議連接 Nginx
然后 Nginx
通過ws協議和server通訊。 也就是說Nginx負責通訊加解密,Nginx到server是明文的,swoole 服務不用開啟ssl,而且還能隱藏服務器端口和負載均衡(何樂不為)。
server { # 下面這個部分和你https的配置沒有什么區別,如果你是 寶塔 或者是 oneinstack 這里用生成的也是沒有任何問題的 listen 443; server_name 這里是你申請的域名; ssl on; # 這里是你申請域名對應的證書(一定要注意路徑的問題,建議絕對路徑) ssl_certificate 你的證書.crt; ssl_certificate_key 你的密匙.key; ssl_session_timeout 5m; ssl_session_cache shared:SSL:10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2 SSLv2 SSLv3; ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; ssl_prefer_server_ciphers on; ssl_verify_client off; # 下面這個部分其實就是反向代理 如果你是 寶塔 或者是 oneinstack 請把你后續檢查.php相關的 和重寫index.php的部分刪除 location / { proxy_redirect off; proxy_pass http://127.0.0.1:9501; # 轉發到你本地的9501端口 這里要根據你的業務情況填寫 謝謝 proxy_set_header Host $host; proxy_set_header X-Real_IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr:$remote_port; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; # 升級協議頭 proxy_set_header Connection upgrade; } }
重啟nginx
服務地址輸入wss://你上面的域名不加端口號