Ubuntu 18-已启用 HTTP2 但提供 http 1.1 服务

Ubuntu 18-已启用 HTTP2 但提供 http 1.1 服务

我使用以下方式设置 http2本指南在这里

我最初在错误日志中收到 MPM Prefork 错误,因此我按照本指南在这里

根据这个工具,http2已启用: https://tools.keycdn.com/http2-test

但是当我在 chrome 中检查时,我仍然可以看到内容是通过 http 1.1 提供的。

<VirtualHost>在我的 vhost 文件中,开头行后面紧接着 Protocols h2 http/1.1

我尝试了以下命令:

curl -I -k --http2 https://www.example.com

答复是:

HTTP/2 200 
date: Fri, 20 Dec 2019 12:07:54 GMT
server: Apache
strict-transport-security: max-age=31536000; includeSubDomains
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
referrer-policy: no-referrer-when-downgrade
link: <https://www.example.com/wp-json/>; rel="https://api.w.org/", <https://www.example.com/>; rel=shortlink
cache-control: max-age=0, no-cache
content-type: text/html; charset=UTF-8

我不确定这里还有什么问题,有什么想法吗?

答案1

Curl 以 HTTP/2 进行响应,keycdn 测试也是如此。因此,您的服务器正在使用 HTTP/2,但您的浏览器没有。

这表明了下列情况之一:

  1. 您正在使用的防病毒软件会拦截 HTTP 连接并将其降级为 HTTP/1.1。您通常可以在 AV 程序设置中关闭 HTTPS 扫描以避免这种情况。

  2. 您正在使用黑名单密码不允许用于 HTTP/2。某些浏览器(例如 Chrome)强制执行此操作,如果您的服务器中未配置更强的密码,则会使用 HTTP/1.1,但我认为其他浏览器(可能是 Firefox?)没有这样做,因此您可以检查一下是否是这个问题。或者使用SSL 实验室工具看看将使用什么密码。

  3. 您已缓存内容或使用服务人员因此开发工具不会报告您的网站支持的协议。

相关内容