操作环境

  • 硬件:华为云服务器
  • 操作系统:Rocky Linux 9.0 64bit
  • 服务器软件:nginx 1.24.0,php 8.2.6,openssl 3.0.7,WordPress6.2.2

问题背景

最近,我在优化我的WordPress网站过程中,使用GTmetrix进行网站速度测试时,提示我的网站当前使用的是HTTP1.1,建议我开启HTTP2,因为HTTP2比HTTP1在性能上更优越。因此,我决定给我的nginx服务器开启HTTP2,现将具体开启过程记录如下。

操作过程

1.用命令 curl --V查看curl版本。

2.使用curl测试网站是否支持HTTP2。


具体指令: curl -I -k --http2 https://localhost

查看指令输出,发现网站目前是HTTP/1.1。

3.修改nginx.conf文件,修改 HTTPS 部分内容。


将HTTPS的server块中 listen 443 ssl;修改为 listen 443 ssl http2 default_server;

4.重启nginx服务。


具体指令: systemctl restart nginx。发现重启失败。

5.查看详细错误信息。


具体指令: systemctl status nginx

查看输出信息,发现缺少 ngx_http_v2_module

6.检查nginx的 ngx_http_v2_module模块安装情况。


先用命令 cd /usr/local/nginx/sbin进入安装目录下sbin子目录(安装目录不同的,请自行修改),再用命令 ./nginx -V查看编译配置参数(注意:此处要用大写V),发现没有配置 ngx_http_v2_module模块,问题找到。

7.进入nginx的源代码目录重新配置编译参数并编译安装。


具体命令如下,输出略。(源代码目录不同的需要相应的修改)

8.重启nginx服务。


具体指令: systemctl restart nginx

9.再次使用curl测试网站是否支持HTTP2。


具体指令: curl -I -k --http2 https://localhost

查看输出,发现HTTP/2已经开启。

10.开启HTTP/2以后网站性能测试结果。


Archived Performance Report for: https://wslibai.com/ | GTmetrix

经开启HTTP/2前后对比测试,发现开启后性能提升很明显,总体评级由 B升为 ATime to First Byte (TTFB)由之前的1000ms左右降到631ms, Fully Loaded Time由之前的3s降到2s。(只可惜当时没有保存开启HTTP2之前的测试结果)

参考资料

h2setup