web - net::ERR_SPDY_PROTOCOL_ERROR 200 代理服务器

标签 web nginx proxy http2 spdy

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

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

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

在我的例子中,它仅在我们替换主机时发生(在将其发送到客户端之前修改来自 PROD 的响应)

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

最佳答案

HTTP/2 源自较早的 SPDY 协议(protocol),这可能是错误消息根本没有提及 HTTP/2 的原因。

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

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

关于web - net::ERR_SPDY_PROTOCOL_ERROR 200 代理服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54114870/

相关文章:

ssl - 使用 Nginx Varnish SSL

angular - 带有用于 https 域的 NGINX proxy_pass 的 Webpack Dev Server 原因:net::ERR_CONNECTION_CLOSED

reactjs - 无法使用React将nginx代理设置为Docker容器

apache - 反向代理背后的 Web 应用程序 - 如何处理 SSL?

javascript - 单击事件第一次不起作用

html - 通过浏览器向正在监听端口的程序发送 HTTP 请求

javascript - 将 JavascriptObject 中的一张图像放置到多个位置

java - Hibernate - 如果没有关联,Hibernate 是否使用代理对象?

java - 运行 Ant 脚本时出现代理问题

ssl - 我如何将端口 123 上的 url www.test.com 指向默认网站下的子站点?