代理服务器的net :: ERR_SPDY_PROTOCOL_ERROR 200

时间:2019-01-09 16:50:25

标签: web nginx proxy http2 spdy

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

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

在这种情况下,我们可以捕获“ net :: ERR_SPDY_PROTOCOL_ERROR 200 ”错误。我在该问题上搜索了一下,但看起来可能是造成该错误的原因很少。

在我的情况下,仅当我们替换主机时才会发生(在将其发送给客户端之前修改PROD的响应)

有人可以描述“ net :: ERR_SPDY_PROTOCOL_ERROR 200 ”的实际含义,以及避免这种情况的最佳做法吗?

2 个答案:

答案 0 :(得分:0)

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

您可能会看到 ERR_SPDY_PROTOCOL_ERROR 消息的原因之一是来自服务器的无效HTTP标头。也许您的代理正在对HTTP响应标头making it invalid/malformed进行一些更改?

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

答案 1 :(得分:0)

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