背景:玩swoole 服務 php
使用Nginx反向代理解決wss問題。nginx
即客戶端經過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 swoole
服務地址輸入wss://你上面的域名不加端口號session