【Linux】采用nginx反向代理讓websocket 支持 wss


背景:玩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://你上面的域名不加端口號

 


免責聲明!

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



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