我有一个设置如下的应用程序:
->清漆-> APACHE (MOD_EVENT) -> PHP_FPM (REDIS + MYSQL)
代理用于TLS终止,清漆用于缓存。
我已经在http2中启用了haproxy、清漆和apache
Haproxy:将alpn h2,http/1.1添加到前端,将proto h2添加到后端
清漆:添加此标志:-p feature=+http2
Apache:安装了mod_http2并添加了Protocols h2 h2c http/1.1。
我从文档中了解到, What支持端到端的http2,清漆只支持前端上的http2。
因此,在清漆-> http2请求变成http1.1之后,Apache接收HTTP1.1请求,正如我通过日志所确认的那样。
我的问题是:
我应该努力拥有端到端的http2吗?对性能来说,这是一件可取的事情吗?或者,我甚至不应该在后端pass连接上启用http2,因为清漆无论如何都不会通过它?
我已经考虑了一段时间了。理论上,一旦HTTP2连接到达HAPROXY ->,我想我们可能不会再从HTTP2复用中获益了,因为请求的其余部分在数据中心内传输……而且网络延迟在数据中心内部要小得多,对吗?只是好奇是否还有其他人遇到同样的问题。
发布于 2021-02-22 12:43:06
我们使用HTTP/2的主要原因是为了防止行头阻塞。H2的复用方面有助于减少阻塞。
但是,当Varnish与源服务器通信时,目标是缓存响应并避免向原始服务器发送更多请求。
HTTP/1在Varnish和原点之间使用的事实不应该是一个大问题,因为Varnish是唯一在那里服务的客户端。线路封堵几乎不会发生。
https://stackoverflow.com/questions/66315346
复制相似问题