【nginx】https站websocket 使用wss 报错?
客户端请求为:
let protocol = location.protocol === 'https:'? 'wss://www.domain.com:8180'
: 'ws://www.domain.com:8180';
var ws = new WebSocket(protocol);
本地测试无问题
nginx配置如下:
server {
listen 443 ssl http2;listen [::]:443 ssl http2;
server_name www.aizhaohui.com; # 你的域名
ssl on;
root /var/www/html; # 前台文件存放文件夹,可改成别的
index index.html index.htm index.nginx-debian.html; # 上面配置的文件夹里面的index.html
ssl_certificate cert/1_www.aizhaohui.com_bundle.crt; # 改成你的证书的名字
ssl_certificate_key cert/2_www.aizhaohui.com.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_prefer_server_ciphers on;
#解决vue刷新404问题
location / {
try_files $uri $uri/ @router;
index index.html;
}
location @router {
rewrite ^.*$ /index.html last;
}
location /wss { # 1websocket配置
proxy_pass http://wscp;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
}
upstream wscp{server 116.62.220.89:8180;
}
目前问题是 调用报错:
回答
你的 nginx 监听的是443端口, 外部连接的却是8180端口, 需要改成一样的.
以上是 【nginx】https站websocket 使用wss 报错? 的全部内容, 来源链接: utcz.com/a/84597.html