[教表弟搭博客]📝课程记录 20200517 启用http/2 (Apache WordPress)

副标题:在表弟面前翻车是种什么样的感觉?🤔

视频工具: 腾讯会议

时长:约2小时

课程内容:

  1. 介绍 http/2.0
  2. 如何看出才能看到自己用了http/2.0
  3. 记录升级前后的测试结果,by Pingdom
  4. 登陆服务器更改Apache配置
    1. 安装http/2 模块
    2. 配置VirtualHost,启用http/2
  5. 翻车过程

一切都是按剧情进行。

介绍如何查看当前浏览器使用的 http 协议版本。

更新为 http/2.0 之前的 PingDom 测试。
https://tools.pingdom.com/#5c8858e403800000

启用 http/2 模块。重启 apache 。

配置 Apache VirtualHost 也是按照节奏进行。

翻车过程

弄完上面的各个步骤,我和表弟马上使用 Chrome 查看了协议版本,然而发现 http/2 并没有生效。

虽然我们是隔着屏幕教学,然而我还是略觉得尴尬😅,怎么又翻车了,说好的半个小时弄好,最后用了2个小时。

这个时候我的疑问是:

  1. 我的也是 Bitnami wordpress,也是 按照上述步骤配置好的,怎么表弟的网站不行?(后面会解答)
  2. 难道是阿里云有什么神秘的东西?(其实并没有)
  3. 是不是有 typo ?(我再三检查了一下,发现没有typo)

经过一番 Google Search, 我发现了apache 启用 http/2的必须条件,以及我表弟网站的支持情况:

  1. 网站要支持 https (虽然http/2 也可以支持 http 非安全方式链接 (h2c) 但是大多数浏览器只支持 https 的 2.0版本) ✅
  2. Apache 版本 要大于 2.4.24 ✅
  3. 要使用 php-fpm ❌
  4. 关于Apache MPM(Multi-Processing Modules), http/2 不支持 Prefork 模式,需要使用 Event 模式 ❌

启用 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

[教表弟搭博客]📝课程记录 20200503 启用HTTPS&添加网站统计功能

视频工具: 腾讯会议

时长:约2小时

课程内容:

1 . 介绍一些计算机常用英文单词 enable, valid, renew, space-separated

2 . 介绍ChromeDev Tool的使用

3 . 动手把网址升级为HTTPS

4. 动手给网站添加统计分析功能(百度网站统计)

遇到的问题:

1 . HTTPS

使用 Bitnami 安装 WordPress 可以直接使用内置的命令 ./bncert-tool 根据命令指引完成HTTPS 证书的配置。

然而,我们遇到了这个问题, acme 400 Timeout during connect (likely firewall problem):

阿里云的 VM,包括 AWS 的 EC2 都是默认可以访问公网的。没有防火墙拦住。

这个问题卡了我们挺久的,时间问题,这次课程我们决定跳过HTTPS的配置。

最后我发现,原来没有给阿里云的 VM 开启443 访问端口。。。。尴尬呀😅。这个脚本 bncert-tool 会配置Apache的服务器开启443, 让 Let’s Encrypt 能访问你的443端口完成 Challenge。

2 . 添加百度网站统计功能

这个没遇到什么问题,验证完成的方式也很简单,直接在 Chrome Dev Tool 看源码就好了。

修改的是 WordPress 主题 header.php 文件

完。