- Published on
如何启用 HTTP/2 (Apache Wordpress)
副标题:在表弟面前翻车是种什么样的感觉?🤔
视频工具: 腾讯会议
时长:约 2 小时
课程内容:
- 介绍 http/2.0
- 如何看出才能看到自己用了 http/2.0
- 记录升级前后的测试结果,by Pingdom
- 登陆服务器更改 Apache 配置
- 安装 http/2 模块
- 配置 VirtualHost,启用 http/2
- 翻车过程
一切都是按剧情进行。
介绍如何查看当前浏览器使用的 http 协议版本。
更新为 http/2.0 之前的 PingDom 测试。
https://tools.pingdom.com/#5c8858e403800000
启用 http/2 模块。重启 apache 。
配置 Apache VirtualHost 也是按照节奏进行。
翻车过程
弄完上面的各个步骤,我和表弟马上使用 Chrome 查看了协议版本,然而发现 http/2 并没有生效。
虽然我们是隔着屏幕教学,然而我还是略觉得尴尬 😅,怎么又翻车了,说好的半个小时弄好,最后用了 2 个小时。
这个时候我的疑问是:
- 我的也是 Bitnami wordpress,也是 按照上述步骤配置好的,怎么表弟的网站不行?(后面会解答)
- 难道是阿里云有什么神秘的东西?(其实并没有)
- 是不是有 typo ?(我再三检查了一下,发现没有 typo)
经过一番 Google Search, 我发现了 apache 启用 http/2 的必须条件,以及我表弟网站的支持情况:
- 网站要支持 https (虽然 http/2 也可以支持 http 非安全方式链接 (h2c) 但是大多数浏览器只支持 https 的 2.0 版本) ✅
- Apache 版本 要大于 2.4.24 ✅
- 要使用 php-fpm ❌
- 关于 Apache MPM(Multi-Processing Modules), http/2 不支持 Prefork 模式,需要使用 Event 模式 ❌
以上 4 点的参考内容:
https://helgeklein.com/blog/2018/11/enabling-http-2-in-apache-on-ubuntu-18-04/
https://httpd.apache.org/docs/2.4/howto/http2.html
启用 php-fpm 和 MPM Event Mode
只需要根据这篇文章操作就可以启用:https://docs.bitnami.com/aws/apps/wordpress/administration/enable-phpfpm/
解答一下上面的疑问一:
我的 Bitnami Wordpress 是默认启用的,因为我使用 EC2 AMI Marketplace 直接安装 Wordpress。
我表弟的 Bitnami Wordpress 是使用阿里云 ECS 手动安装,过程很多特性并没有默认启用,比如 Apache MPM event 模式是没有启用的,这是因为 Prefork 模式有跟好的操作系统兼容性(来源)。
延伸内容
如果你想继续更深入了解,可以看看 Apache 的 Multi-Processing Modules (MPMs)。 以及三种 MPM 的工作模式:prefork, worker, 和 event。
这个链接在:https://httpd.apache.org/docs/2.4/mpm.html
完。