通过nginx访问连接websocket 错误 failed: Error during WebSocket handshake: Unexpected response code: 400

项目部署到正式环境时出现页面websocket连接错误,正式环境配置了nginx,通过真实路径访问项目可正常连接。查阅资料后,在nginx.conf配置文件的location中加入特定参数可解决问题,官方也有相关讨论。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    最近项目部署到正式环境的时候发现页面websocket连接错误。如下:

    其中与本地环境的区别就是正式环境配置了nginx。而我通过真实路径访问正式环境项目,也能正常连接。经查阅相关资料,在nginx.conf 配置文件中location 加入如下参数即可:

    # proxy_http_version 1.1;    
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";

 

其中第一行是告诉nginx使用HTTP/1.1通信协议,这是websoket必须要使用的协议。

第二行和第三行告诉nginx,当它想要使用WebSocket时,响应http升级请求。

socket.io 官方issues有关于这个问题的讨论,链接:https://github.com/socketio/socket.io/issues/1942

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值