最新消息:

微信小程序的websocket 服务端实现wss的nginx代理配置实现

软件开发 luther 来源:雷锋网 2016-12-28 10:04:04 8372浏览 0评论

有很多朋友知道ws,但不懂得wss是什么。

首先什么是wss:WSS 是 Web Socket Secure 的简称, 它是 WebSocket 的加密版本. 我们知道 WebSocket 中的数据是不加密的, 但是不加密的数据很容易被别有用心的人窃取, 因此为了保护数据安全, 人们将 WebSocket 与 SSL 结合, 实现了安全的 WebSocket 通信, 即 WebSocket Secure.所以说 WSS 是使用 SSL 进行加密了的 WebSocket 通信技术.

知道了什是wss后,那么,你首先实现ws服务,ws服务可以用java的netty、php、node.js的socket.io 来实现,相关方法请自行查找相关详细资料,这不是本文讨论的重点;

假设我们实现了ws服务,地址为ws://119.126.135.18:8000,那么就通过nginx配置ssl加密代理连接就可以了,首先你要确定用哪个域名的路劲来访问wss服务,比如用:yourdomainname.com/wss,那么yourdomainname.com是你的域名,你首先要生成这个yourdomainname.com域名的加密证书,生成方法请看《为苹果ATS和微信小程序搭建 Nginx + HTTPS 服务》,你面收详细的生成ssl证书的方法;启动你的ws服务,然后配置nginx: upstream websocket { server 119.126.135.18:8000; } ######################## default ############################ server { listen 443 ssl; server_name yourdomainname.com;

# SSL 验证配置 ssl_certificate “/etc/letsencrypt/live/yourdomainname.com/full“;ssl_certificate_key “/etc/letsencrypt/live/yourdomainname.com/priv“; # 默认值ssl_ciphers HIGH:!aNULL:!MD5; # 据说这个兼容 ie6 xp , 但实际测试发现根本打不开网页啊#ssl_ciphers “EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5”; #ssl_ciphers “EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5”; #ssl_ciphers “EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH”; ssl_session_timeout 10m; ssl_protocols TLSv1.2 TLSv1.1 TLSv1; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m;

listen 80; server_name name yourdomainname.com; access_log /data/wwwlogs/access_nginx.log combined; root /data/wwwroot/domainname; index index.html index.htm index.php;

location ~ /.well-known { allow all; }

location /wss { proxy_pass http://websocket;#代理到上面的地址去 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection “Upgrade”; }

location /nginx_status { stub_status on; access_log off; allow 127.0.0.1; deny all; } location ~ [^/]\.php(/|$) { #fastcgi_pass remote_php_ip:9000; fastcgi_pass unix:/dev/shm/php-cgi.sock; fastcgi_index index.php; include fastcgi.conf; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ { expires 30d; access_log off; } location ~ .*\.(js|css)?$ { expires 7d; access_log off; } }

 

通过保存上面的配置,重点在加黑部分,重新启动nginx,然后你就可以以wss://yourdomainname.com/wss路劲访问你的websocket服务了;

原创文章,转载请注明: 转载自职道

本文链接地址: 微信小程序的websocket 服务端实现wss的nginx代理配置实现

文章的脚注信息由WordPress的wp-posturl插件自动生成

转载请注明:职道 » 微信小程序的websocket 服务端实现wss的nginx代理配置实现

与本文相关的文章

  • 暂无相关文章!

您必须 登录 才能发表评论!