网站改成https后,websocket连接不上
网站改成https后,websocket连接不上了。
如果网站使用HTTPS,WebSocket必须要使用wss协议。
使用wss协议的连接请求必须只能写域名,而非IP+端口。
我们可以通过nginx反向代理来实现,只需在nginx配置文件的server内加一个location即可(我这里websocket用的是2348端口,这里的端口改成你自己的端口)
location /socket/ {
proxy_pass http://127.0.0.1:2348;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
proxy_pass http://127.0.0.1:2348;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
前端这样写
const ws = new WebSocket("wss://www.zhiboblog.com/socket/");
这样就可以解决网站改成https后,websocket连接不上的问题了。
赞 (0)