【发布时间】:2021-02-22 20:43:06
【问题描述】:
我有一个这样设置的应用程序:
HAPROXY -> 清漆 -> APACHE (MOD_EVENT) -> PHP_FPM (REDIS + MYSQL)
用于 TLS 终止的 Haproxy,用于缓存的清漆。
我在 haproxy、varnish 和 apache 中启用了 http2:
Haproxy:将alpn h2,http/1.1 添加到前端,将proto h2 添加到后端
Varnish:添加此标志:-p feature=+http2
Apache:安装mod_http2并添加Protocols h2 h2c http/1.1。
我从文档中了解到,haproxy 支持端到端的 http2,varnish 只支持前端的 http2。
所以在 varnish -> http2 请求变成 http 1.1 并且 apache 收到 http1.1 请求后,正如我通过日志确认的那样。
我的问题是:
我应该努力拥有端到端的http2吗?这对性能来说是一件可取的事情吗?还是我什至不应该在后端 haproxy 连接上启用 http2,因为 varnish 无论如何都不会通过它?
我已经考虑了一段时间。 理论上,一旦 HTTP2 连接到达 HAPROXY -> 我认为我们可能不会再从 HTTP2 多路复用中受益,因为其余的请求在数据中心内传输……而且数据中心内的网络延迟要小得多,对吧?只是好奇是否有其他人遇到同样的问题。
【问题讨论】: