Apache 日志显示,即使启用了 HTTP/2(通过 WAF),我们也使用 HTTP1.1 而不是 HTTP2 协议

Apache logs shows us we are using HTTP1.1 instead of HTTP2 protocol even HTTP/2 is enabled (through WAF)

提问人:Cris 提问时间:10/26/2023 最后编辑:neuroCris 更新时间:10/27/2023 访问量:38

问:

你知道为什么我们的apache日志显示我们使用的是HTTP1.1而不是HTTP2协议,甚至我们的服务器中启用了HTTP/2吗?

我确保mod_http2模块已经安装并加载:

$sudo httpd -M | grep http2_module

http2_module (shared)

此外,我确保 virtualhost 配置为使用 HTTP2:

<VirtualHost *:443>

...

Protocols h2 h2c http/1.1

...

</VirtualHost>

apache 日志总是显示我们使用的是 HTTP1.1 而不是 HTTP2 协议:

XXX.WWW.YYY.ZZZ (XXX.WWW.YYY.ZZZ) - [25/Oct/2023:11:55:06 +0200] "GET /test_http2.php HTTP/1.1" 200 33

如果我们跳过 WAF 并直接访问我们的服务器,我们可以看到 HTTP2 正在工作:XXX.WWW.YYY.ZZZ (-) - [25/Oct/2023:11:53:07 +0200] "GET /test_http2.php HTTP/2.0" 200 33

它可能与我们的 WAF(在我们的例子中是 Sucuri)或我们的服务器配置有关?

Apache 虚拟主机 httpd.conf http2 web-application-firewall

评论


答:

0赞 Cris 10/27/2023 #1

我想回答我自己的问题。我们看到在托管服务器上使用 HTTP/1.1 的请求的原因是我们的 WAF。我们的 WAF 建立在 Nginx 之上,它不支持 HTTP/2 与上游服务器的代理连接:https://www.nginx.com/blog/http2-module-nginx/#QandA