回答
收藏
分享
举报
Nginx Provisional headers are shown
提问于2021-03-25 15:38

浏览 6k

我有个应用程序里面使用到了WebSocket,当我没有使用Nginx时可以正常访问,但是当挂在Nginx上时就出现异常的情况,而且刷新多次中可能偶尔正常偶尔异常,并不是一直都是异常的,但大部分时候是异常的,我发现浏览器提示请求头上有这个警告:Provisional headers are shown,同时控制台输出如下错误:blazor.server.js:1 WebSocket connection to 'wss://*:11111/_blazor?id=y8GYKs3vWJN11zS7p5WBag' failed: Error during WebSocket handshake: Unexpected response code: 404。这种错误状况是偶尔的,所以不知道怎么开始排查。Nginx上需要配置的WebSocket相关的配置如下:

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

proxy_set_header Host $host;


求助各位大神,是否有遇到这种情况?

已修改于2023-03-17 09:23



写下您的回答
发表回答
全部回答(1)

按点赞数排序

按时间排序

抓包对比下,包括:

1、不使用Nginx时,抓包看下Websocket的握手,包括在浏览器和Nginx上游服务上;

2、使用Nginx时,抓包看下Nginx上游服务。

从你的错误请求来看,貌似url的匹配出问题了,正常应该是返回101,但你返回 了404

赞同

1

回复举报

回答于2021-03-25 18:04



回复陶辉
回复
$(陈兴)$回复了

首先感谢这位大佬的回答,这里主要让我不理解的是为什么会有偶尔可以成功的这种奇怪的现象,如果是URL匹配不对等比较硬性的问题,应该不会有偶尔可以成功的这种现象才对。我试着抓包对比一下,谢谢。

2

回复举报

回答于2021-03-26 02:03



回复$(陈兴)$
回复
提问者
$(陈兴)$
这家伙很懒还未留下介绍~
0
文章
1
问答
0
粉丝
相关问答

不转化成IP没有办法连接呀?可以考虑使用动态DNS,这样服务器的IP即使变化也可以很快检测到。

点赞 0
浏览 3.6k

是更项目打包的路径有关系吗?

点赞 0
浏览 3.8k

使用keepalive建立长连接池:

upstream http_backend {
    server 127.0.0.1:8080;

    keepalive 16;
}

server {
    ...

    location /http/ {
        proxy_pass http://http_backend;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        ...
    }
}
点赞 0
浏览 5.1k