【问题标题】:end to end HTTP2 - with haproxy, apache and varnish - possible? needed?端到端 HTTP2 - 使用 haproxy、apache 和 varnish - 可能吗?需要吗?
【发布时间】:2021-02-22 20:43:06
【问题描述】:

我有一个这样设置的应用程序:

HAPROXY -> 清漆 -> APACHE (MOD_EVENT) -> PHP_FPM (REDIS + MYSQL)

用于 TLS 终止的 Haproxy,用于缓存的清漆。

我在 haproxyvarnishapache 中启用了 http2:

Haproxy:将alpn h2,http/1.1 添加到前端,将proto h2 添加到后端
Varnish:添加此标志:-p feature=+http2
Apache:安装mod_http2并添加Protocols h2 h2c http/1.1

我从文档中了解到,haproxy 支持端到端的 http2varnish 只支持前端的 http2

所以在 varnish -> http2 请求变成 http 1.1 并且 apache 收到 http1.1 请求后,正如我通过日志确认的那样。

我的问题是:
我应该努力拥有端到端的http2吗?这对性能来说是一件可取的事情吗?还是我什至不应该在后端 haproxy 连接上启用 http2,因为 varnish 无论如何都不会通过它?

我已经考虑了一段时间。 理论上,一旦 HTTP2 连接到达 HAPROXY -> 我认为我们可能不会再从 HTTP2 多路复用中受益,因为其余的请求在数据中心内传输……而且数据中心内的网络延迟要小得多,对吧?只是好奇是否有其他人遇到同样的问题。

【问题讨论】:

    标签: apache haproxy varnish


    【解决方案1】:

    我们使用 HTTP/2 的主要原因是为了防止行头阻塞。 H2 的多路复用方面有助于减少阻塞。

    但是,当 Varnish 与源站服务器通信时,目标是缓存响应并避免向源站发送更多请求。

    在 Varnish 和源站之间使用 HTTP/1 应该不是什么大问题,因为 Varnish 是唯一在那里服务的客户端。 行头阻塞几乎不会发生。

    【讨论】:

      猜你喜欢
      • 2016-08-17
      • 2017-10-24
      • 2017-07-13
      • 2015-01-11
      • 1970-01-01
      • 2022-11-03
      • 2018-10-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多