问题:
WebSocket connection to ‘ws://域名/cweb/api//websocket/2222’ failed: Error during WebSocket handshake: Unexpected response code: 302
1、检查连接路径是否正确
2、检查网络、防火墙、端口是否通
3、如果是使用域名,配置的nginx反向代理,那么需要执行下面步骤
一般域名访问才会出现上面错误,通过ip那么不需要配置
要在Nginx上启用WebSocket访问,你可以按照以下步骤进行操作:
打开Nginx配置文件:通常,Nginx的配置文件位于/etc/nginx/nginx.conf或/etc/nginx/conf.d/default.conf。
在http块中添加WebSocket支持的配置项:
http {
…
其他配置项…
在这里添加WebSocket支持的配置项
map $http_upgrade $connection_upgrade {
default upgrade;
‘’ close;
}
…
}
在需要启用WebSocket的位置块(location块)中添加proxy_pass和相关配置:
http {
…
server {
listen 80;
server_name example.com;
# 其他配置项...
# 在需要启用WebSocket的位置块中添加以下配置
location /websocket-path {
proxy_pass http://websocket-backend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
...
}
…
}
记得将/websocket-path替换为你实际的WebSocket路径,将http://websocket-backend替换为实际的后端WebSocket服务器的地址。
保存并退出Nginx配置文件。
检查Nginx配置是否正确:运行以下命令以验证配置是否有效:
nginx -t
重启Nginx服务:运行以下命令以使配置更改生效:
systemctl restart nginx
在完成这些步骤后,现在你的Nginx服务器应该已经启用了WebSocket访问。确保WebSocket后端服务器可以正常运行,并使用正确的路径和地址进行测试。
如图:在需要连接的指定域名配置开启支持websocket,注意如果多个域名不要弄错