网站改成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;
}

前端这样写

const ws = new WebSocket("wss://www.zhiboblog.com/socket/");

这样就可以解决网站改成https后,websocket连接不上的问题了。

志博

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: