Web net::ERR_SPDY_协议_错误200与代理服务器

Web net::ERR_SPDY_协议_错误200与代理服务器,web,nginx,proxy,http2,spdy,Web,Nginx,Proxy,Http2,Spdy,在我们的项目中,我们使用2台服务器:1台作为ProdAPI服务器,1台作为代理(实际上,nginx用于此) 代理服务器也使用HTTP/2。在一种情况下,代理可以从ProdAPI服务器获得响应,并用代理替换prod链接,然后将其返回给客户端 在这种情况下,我们可以捕获“net::ERR\u SPDY\u PROTOCOL\u ERROR 200”错误。我在谷歌上搜索了一些关于这个问题的信息,但看起来这可能是导致这个错误的几个原因 在我的例子中,只有当我们更换主机时才会发生这种情况(在发送到客户端之

在我们的项目中,我们使用2台服务器:1台作为ProdAPI服务器,1台作为代理(实际上,nginx用于此)

代理服务器也使用HTTP/2。在一种情况下,代理可以从ProdAPI服务器获得响应,并用代理替换prod链接,然后将其返回给客户端

在这种情况下,我们可以捕获“net::ERR\u SPDY\u PROTOCOL\u ERROR 200”错误。我在谷歌上搜索了一些关于这个问题的信息,但看起来这可能是导致这个错误的几个原因

在我的例子中,只有当我们更换主机时才会发生这种情况(在发送到客户端之前修改PROD的响应)


有人能描述一下“net::ERR\u SPDY\u PROTOCOL\u ERROR 200”的实际含义以及避免这种情况的最佳实践吗

HTTP/2源自早期的SPDY协议,这可能就是错误消息根本没有提到HTTP/2的原因

您可能会看到ERR\u SPDY\u PROTOCOL\u ERROR消息的原因之一是来自服务器的无效HTTP头。也许您的代理正在对HTTP响应头进行一些更改,这是什么


尝试在代理服务器上禁用HTTP/2,看看错误是否消失。如果有,请检查响应头并确保它们有效。我怀疑您的代理服务器的响应不正确。

我们今天在使用docker image:nginx:1.16.0-alpine运行反向代理服务器时遇到了类似问题。更改为使用nginx:1.16.0后,此问题已解决。

感谢您的帮助。在HTTP/2禁用后,它表示内容类型长度不匹配错误,实际上nginx设置决定,像MITM atack这样的重写过程一旦发现问题,我们就重新设计了我们的方法,因此我们没有解决长度不匹配的问题。我们已经解决了在nginx代理配置中添加“proxy\u max\u temp\u file\u size 0”的问题。