nginx ws怎么变成wss

nginx ws怎么变成wss,第1张

Nginx版本使用最新Stable版本,如果是旧版本,查询一下是否支持websocket代理。

WS普通Websocket代理,WSS是Https格式的。下面示例。表示两者都可以使用。如果强制WSS,可以在Location之前加一下Rewrite。

比如:

rewrite ^(.*)$  https://$host$1 permanent

里面模拟的是用户访问一台Nginx服务器,Nginx代理后面一台真实服务器。

如果只是一台机器上设置也是类似的。

此外里面的域名和端口和证书,日志名称之类的根据自己的情况来定。

这个文件保存成一个name.conf在Nginx.conf中include即可。

upstream yourserver {

        ip_hash

        server 172.16.10.10 weight=1 max_fails=2 fail_timeout=2

        }

 

 

server {

        listen 镇散      80

        listen       443

        server_name yoursever.domain.com

        ssl     on

        ssl_certificate      /etc/ssl/certs/yourname.crt

        ssl_certificate_key  /etc/ssl/certs/yourname.key

 

        ssl_session_timeout  5m

        ssl_session_cache shared:SSL:50m

        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

 

    

         proxy_pass http://yourserver

         proxy_redirect off

         proxy_set_header Host $host

         proxy_set_header X-Real-IP $remote_addr

         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for

         proxy_read_timeout 3600s

         proxy_send_timeout 3600s

         伍并proxy_http_version 1.1

         proxy_set_header Upgrade $http_upgrade

         proxy_set_header Connection "upgrade"

    腔旅迹     access_log /var/log/nginx/yourserver.log main

 

        }

项目场景:

一个im项目在测试准备上线的时候,发现微信小程序在正式行或尺阶段团衫只支持wss协议

问题描述:

提示:发现微信小程序在正式阶段只支档高持wss协议,由于通信采用https,所以ws协议无法直接使用,测试开发阶段可以采用ws协议进行

原因分析:

原因在于https和http不能混合使用,wss和ws也是对应的,https下无法使用http和ws协议

解决方案:

于是想到采用nginx代理的方式进行协议转换,解决通信问题,这样既不用修改服务端代码,也不需要修改客户端代码,一举多得。

话不多说,上nginx配置:


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12461392.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存