多个代理上的 HTTP2

多个代理上的 HTTP2

我在 Cloudflares 支持页面中看到,在将请求转发到我们的内部代理时,他们将流量从 HTTP2 转换为 HTTP/1.x。

我们有一个 Cloudflare WAF 服务,它将流量转发到我们的数据中心内部 WAF,这个 WAF 将流量转发到我们的 nginx,后者基本上将请求代理到我们的内部服务。

现在我们的 WAF 和 nginx 支持 HTTP2 协议,但我们注意到,当请求来自 Cloudflares 端时,它们会转换为 HTTP/1.x,因为根据它们的说法,使用相同的 HTTP2 转发流量是没有意义的,因为 HTTP2 仅专注于改善浏览器行为。

我不确定我们是否真的不需要使用相同的 HTTP2 将流量发送到所有代理。有人可以解释一下这个问题吗?

答案1

HTTP/2 通过添加二进制来解决协议中的低效率问题,从而提高了偏好。多路复用帧层来解决早期版本的 HTTP 协议中固有的队头阻塞问题。这些问题主要影响高延迟、低带宽连接 - 即浏览器到边缘节点。

对于 CDN 到原始服务器来说,这通常不是什么大问题,特别是如果在 CDN 端进行缓存,那么原始服务器受到的打击就会较少。

这里有更详尽的答案:https://stackoverflow.com/questions/41637076/http2-with-node-js-behind-nginx-proxy

或者如果你真的对这个主题感兴趣那么我已经写了一本关于这个主题的书(现在可以提前访问但很快就会出版):https://www.manning.com/books/http2-in-action

相关内容