nginx websocket wss 连接失败 failed_https ssl 使用 wss 解决无法通信的解决方案
在成功利用swoole_websocket_server开启websocket服务之后,遇到一个问题,大多数web都是https的,特别是涉及到安全性比较高,设计互联网金融、数字货币的时候,https都是必须的。这时候,因为安全问题,ws://连接会被禁止。简单说明(一)nginx顶部配置map $http_upgrade $connection_upgrade {defau...

在成功利用swoole_websocket_server 开启websocket服务之后,遇到一个问题,大多数web都是https的,特别是涉及到安全性比较高,设计互联网金融、数字货币的时候,https都是必须的。这时候,因为安全问题,ws://连接会被禁止。
简单说明(一)
nginx顶部配置
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream websocket {
server 你的ip地址:你的端口; #这里可以是多个服务端IP(分多行),设置权重就可以实现负载均衡了
}
#SSL-END 下边配置
#SSL-END
#wss协议转发 前端里面要访问的链接
# 访问:wss://xxxx.com/app
location /app {
proxy_pass http://你的域名:你的ws端口号;#代理到上面的地址去,
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
已解决网站安装SSL证书后,Swoole websoket wss报错误:failed: WebSocket opening handshake timed out,最终超时连接不上的问题。
创建wss服务
问:
Workerman如何创建一个wss服务,使得客户端可以用过wss协来连接通讯,比如在微信小程序中连接服务端。
答:
wss协议实际是websocket+SSL,就是在websocket协议上加入SSL层,类似https(http+SSL)。
所以只需要在websocket协议的基础上开启SSL即可支持wss协议。
方法一 ,直接用Workerman开启SSL
准备工作:
1、Workerman版本不小于3.3.7
2、PHP安装了openssl扩展
3、已经申请了证书(pem/crt文件及key文件)放在磁盘任意目录
代码:
更多推荐




所有评论(0)