操作环境

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

基本假设

1.nginx已开启https服务
2.nginx已配置http转发https
3.nginx已配置gzip模块

操作方法

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

在 HTTPS的server块添加以下内容,并保存修改:

2.重新启动nginx服务

用命令 systemctl restart nginx重启nginx服务,再使用命令 systemctl status nginx查看nginx服务状态。

3.浏览网站测试

发现网页访问秒开,但是网页有部分图片无法显示。

打开EDGE浏览器的开发人员工具(其它浏览器也有类似工具),发现有部分图片资源请求的回应是404。

查看nginx的错误日志,发现有大量 No such file or directory的错误记录,正是回应404的部分图片资源请求。摘录其中一条错误日志如下:

经核实是请求资源的路径错误,原来是我的wordpress网站根目录已设置为html/wordpress,而上述新添加的location块中未配置root参数。

4.添加根目录参数设置

在以上新添加的几个location块中添加一行内容: root html/wordpress;,保存修改,重新启动nginx服务,问题解决。

细心的读者可能发现了expires参数已被替换为Cache-Control ,其实两个参数功能差不多,都是表示强缓存,但前者是http 1.0,后者是http1.1的,后者功能更强。如果两个参数都配置,起作用的是后者。具体含义可自行百度。同时,我将过期时间从原来的4个月修改为4天了(开发调试期间,设短一点)。

5.打开开发人员工具浏览网站测试验证

用EDGE浏览器打开网站页面,并打开开发人员工具,刷新页面,发现总请求128次,通过网络传输大小为59.6kB,资源实际大小为8MB。说明浏览器缓存已启用。