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

背景:玩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

相关文章
相关标签/搜索