gpt4 book ai didi

varnish - Varnish 如何处理 HTTP/2 服务器推送?

转载 作者:行者123 更新时间:2023-12-02 11:21:41 25 4
gpt4 key购买 nike

我一直在寻找使用 HTTP2 改进页面加载的方法,特别是使用服务器推送。

我们有一个 HAProxy => Varnish => Apache 配置。

我知道 varnish 5 可以处理 HTTP2 请求,但是当请求具有服务器推送 header 以获取页面上的更多资源时,这些资源是从缓存中出来还是只是传递给 apache?

我的想法是,如果这些服务器推送 header 不由 Varnish 处理,则会阻碍页面加载而不是净 yield ......

最佳答案

HAProxy 1.8 仅在前端支持 HTTP/2,然后将使用 HTTP/1.1 连接到 Varnish - 除非您将其用作 TCP 负载均衡器而不是 HTTP 负载均衡器? HAproxy 1.9 确实在后端添加了 HTTP/2(即设置中的下游系统,例如 Varnish)。我不认为将其用作 HTTP 代理时支持 HTTP/2 Push。

同样,Varnish 仅在前端支持 HTTP/2,并且不支持推送 AFAIK。

所以基本上你不能在当前的基础设施中使用 Push。它们将作为 HTTP/1.1 连接连接到 Apache(这是唯一支持 Push 的部分),因此除非使用 HTTP/2,否则它甚至不会尝试推送资源。

支持这一点的最简单方法是简化您的基础设施。我不确定您是否有需要 HAProxy 和 Varnish 的卷,或者您是否有其他原因以这种方式进行设置?如果没有,那么您可以完全摆脱它们并只使用 Apache。或者,只需使用 HAProxy 作为 TCP 代理并使用 HTTP/2 连接到任何 Apache 实例(无论是否通过 TLS)。

另一个选择是在 HAProxy 前面放置另一个 Apache 实例来处理 HTTP/2 和 HTTP/2 Push。后端连接可以通过 HTTP/1 然后向这个新的 Apache 发出信号,使用链接 header (甚至通过 HTTP/1)推送资源,并且它将适本地从下游请求资源(如果就是这样设置的)。但对于大多数站点来说,运行 Apache -> HAProxy -> Varnish -> Apache 听起来绝对是大材小用。

关于varnish - Varnish 如何处理 HTTP/2 服务器推送?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48817511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com