按照官方文档的示例,配置了nginx的wss反向链接。如下:
server{
listen 443;
listen :443;
server_name c.officedog.cn;
root /alidata/www/cd;
ssl on;
ssl_certificate /etc/nginx/cert/214354783860444.pem;
ssl_certificate_key /etc/nginx/cert/214354783860444.key;
ssl_session_timeout 5m;
#ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
#ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_session_cache shared:SSL:50m;
ssl_protocols SSLv3 SSLv2 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4 RSA: HIGH: MEDIUM: LOW: SSLv2: EXP;
ssl_prefer_server_ciphers on;
location /wss/ {
proxy_pass http://120.24.64.45:8282/; 指向服务器socket服务器
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-real-ip $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
}
if ($scheme = http) {
return 301 https://$server_name$request_uri;
}
#其他略
其中,http://120.24.64.45:8282/ 指向socket服务器。
protected $socket = 'websocket://120.24.64.45:8282';
测试一:客户端直接访问 ws://域名:8282 ,能否正常访问。
测试二:客户端访问 wss://域名 ,由nginx反向链接 ws://域名:8282 ,就报错了。报错内容如下:
WebSocket connection to 'wss://c.officedog.cn/' failed: Error during WebSocket handshake: Unexpected response code: 200
环境,阿里云CentOS7,PHP7,nginx。
看起来客户端要访问 wss://c.officedog.cn/wss/ 才对吧
十分感谢,对nginx配置的基础不牢靠,按照你所说的,已经成功了。
不客气,我也是猜的
@3092:能发下你的配置文件给我吗?
@2710:哥们 太感谢你了
请问一下,改成wss://c.officedog.cn/wss/这种形式之后依然不行,还有什么别的解决方案吗?