Error during WebSocket handshake: Unexpected response code: 200 问题处理

项目采用了Nginx做反向代理,在非代理的情况下,采用ip或者域名访问都是ok的。

但是当采用了反向代理后,项目中的SignalR就一直抛出“Error during WebSocket handshake: Unexpected response code: 200”的异常

 

跟进错误信息搜索到的解决方案大致都是如下,nginx里面条件相关WebSocket 的配置,主要是是如下三项:

proxy_http_version 1.1;  
proxy_set_header Upgrade $http_upgrade;  
proxy_set_header Cpnnection "upgrade"; 

配置后的截图如下:

修改配置后需要重启重启Nginx

 

 发现按照网上如此配置没有效果,还是抛出一样的错误信息。

 

后查看Nginx官方文档,需要对于WebSocket进行单独的配置

 

 上图中的 /wsapp/ 指的也就是我们的SignalR的hub名称,我们当前的hub的名称是:searchStatusHub,修改后的配置如下:

修改配置后需要重启重启Nginx

 

 

修改之后发现问题已经解决!

为了验证路由是走的hub配置的,我们将根路由的相关的WebSocket配置注释,如下图:

修改配置后需要重启重启Nginx

 

发现一切正常,如下图,测试通过!

 

posted @ 2020-07-25 18:32  恝置  Views(17403)  Comments(0Edit  收藏  举报