http改为https后websocket连接不上

一、前端

http时候的写法:

ws://xx.xx.xx.xx:6532/ws?userId=xxxx

https的写法:

wss://www.xx.com/ws?userId=xxxx

二、nginx

修改之后完整的nginx配置如下:

# HTTP 服务配置
server {
    listen       80;
    server_name  你的域名;
    return 301   https://$server_name$request_uri;
}

# HTTPS 服务配置
server {
    listen 443 ssl;
    server_name 你的域名;

    ssl_certificate /path/to/cert.pem; 这里是你的证书路径
    ssl_certificate_key /path/to/key.pem;这里是你的密钥路径

    location /ws {
        proxy_pass http://localhost:6532;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header userId $arg_userId;
    }

    location / {
        root /path/to/root;这里是你的项目存放地址
        index index.html;
    }
}

三、注意

这里的 location /ws 表示 WebSocket 服务的路径,而不是 URL。当请求的 URL 匹配到 /ws 路径时,将会被代理到 WebSocket 服务。

其中,proxy_set_header userId $arg_userId; 表示从请求 URL 的 query string 中获取 userId 参数的值,并将其作为自定义头信息 userId 发送到后端 WebSocket 服务。如果请求的 URL 中没有 userId 参数,则 $arg_userId 的值为空。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值