社会化账号聚合登录系统
24H 离线签到平台
免费手机工具 站长工具 源代码查看器
收集优秀网站
OV 乐在途中-记录旅途的快乐
0ovo0 兴趣盎然个人博客记录日常

wordpress 性能优化:为 nginx 添加 Nginx fastcgi_cache 静态缓存加速 (秒杀各种 wp 缓存插件)

前言

本来想搞那个 nginx 压缩模块的,结果死活装不上,于是就发现了这个模块 Nginx fastcgi_cache,并且我发现使用这个 nginx 的模块缓存几乎秒杀 wp 的各种缓存插件,在宝塔面板开启 Nginxfastcgi_cache 模块,为 WordPress 的伪静态页面生成缓存,可以显著提高低配置服务器的负载性能。晓白实测速度截图

图片[1]-wordpress性能优化:为nginx添加Nginx fastcgi_cache 静态缓存加速(秒杀各种wp缓存插件)-SW兴趣使然

wp 的后台检测的速度可以低到 19ms

我们这个都不需要安装插件,只需要配置一下 nginx 的设置即可

在此之前,请给服务器设置快照与数据库备份,防止发生不可逆的操作,小白建议反复观看,教程与操作的地方非常多,如果实在没有动手能力,可以直接放弃,因为这对于一般初学者来说还是太难了

教程开始

首先我们需要编译安装 nginx,宝塔用户可以直接进行编译安装 nginx(需要先卸载原来的 nginx),一般宝塔的 nginx 编译安装都是默认自带这个模块的,所以不需要额外的安装

设置过程分两步,分别是修改 Nginx 的配置文件修改网站的配置文件

第一步修改 Nginx 的配置

图片[2]-wordpress性能优化:为nginx添加Nginx fastcgi_cache 静态缓存加速(秒杀各种wp缓存插件)-SW兴趣使然

如上所示,按序点击:软件商店 -> 运行环境 -> Nginx -> 配置修改,将如下 Nginx 配置代码复制到 server  的上方,保存。

本文隐藏内容

fastcgi_cache_path /tmp/wpcache levels=1:2 keys_zone=xbnb:128m inactive=1d max_size=1G; #站点 1 缓存配置

fastcgi_cache_path /tmp/wpcache2 levels=1:2 keys_zone=lsposed:128m inactive=1d max_size=1G; #站点 2 缓存配置,如果服务器多个网站需要开启缓存,则使用不同的 fastcgi_cache_path 和 keys_zone,设置教程 https://www.xbnb.cn/14346

fastcgi_temp_path /tmp/wpcache/temp; #上面这些目录都需要手动提前创建好

fastcgi_cache_key "$scheme$request_method$host$request_uri";

fastcgi_cache_use_stale error timeout invalid_header http_500;

fastcgi_hide_header Pragma; #不对从被代理服务器传来的应答进行转发

fastcgi_ignore_headers Cache-Control Expires Set-Cookie;#忽略一切 nocache 申明,避免不缓存伪静态等

参数说明

  • path:缓存存放目录;
  • levels:指定该缓存空间有两层 hash 目录, 第一层目录为 1 个字母, 第二层目录为 2 个字母, 保存的文件名会类似/tmp/wpcache/b/29/XXXXXX;
  • keys_zone:缓存区的命名,范例中是 xbnb 可根据需要自定义,但要与网站配置中相一致;
  • 128m:内存缓存空间大小为 128MB,可根据服务器配置自由调整;
  • inactive:1d 指如果缓存数据在 1 天内没有被访问, 将被删除,相当于 expires 过期时间的配置,可根据需要自由调整;
  • max_size:1g 指硬盘缓存空间为 1G,可根据服务器配置调整大小,也可以直接删掉,如果删掉 max_size=1G,就代表完全使用内存来缓存;

第二步 修改 网站 的配置

找到 PHP 连接和引用配置

图片[3]-wordpress性能优化:为nginx添加Nginx fastcgi_cache 静态缓存加速(秒杀各种wp缓存插件)-SW兴趣使然

⭕软件商店 -> 运行环境 -> PHP ->FPM 配置文件 -> listen = 后面是 PHP 连接配置,这个涉及后面的部分代码修改

图片[4]-wordpress性能优化:为nginx添加Nginx fastcgi_cache 静态缓存加速(秒杀各种wp缓存插件)-SW兴趣使然

⭕网站 -> 设置 -> 配置文件 -> 找到 PH P 引用配置,同样需要记得这个。因为每个人用的 php 版本不一样,所以代码也不一样,当然,如果你和我一样也是 php8.2,那么就不需要记住上面两个设置了

修改默认的缓存配置文件

图片[5]-wordpress性能优化:为nginx添加Nginx fastcgi_cache 静态缓存加速(秒杀各种wp缓存插件)-SW兴趣使然

本文隐藏内容

set $skip_cache 0; #设置教程 https://www.xbnb.cn/14346

#post 访问不缓存,

if ($request_method = POST) {

set $skip_cache 1;

}

#动态查询不缓存

if ($query_string != "") {

set $skip_cache 1;

}

#后台等特定页面不缓存 (其他需求请自行添加即可)

if ($request_uri ~* "/wp-admin|/images/api.php|/xmlrpc.php|wp-.*.php|/feed/|index.php|sitemap(_index)?.xml") {

set $skip_cache 1;

}

#对登录用户、评论过的用户不展示缓存

if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {

set $skip_cache 1;

}

location ~ [^/]\.php(/|$)

{

try_files $uri =404;

fastcgi_pass unix:/tmp/php8.2.sock; #注意!不同 PHP 版本,此处填写也不同,以自己服务器的配置为准,这里我是 php8.2

fastcgi_index index.php;

include enable-php-82.conf; #注意!不同的 PHP 编译方式,此处的配置文件位置也有可能不同,以自己服务器的配置为准,同理 8.2,但是设置填 82

add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";

#新增的缓存规则

fastcgi_cache_bypass $skip_cache;

fastcgi_no_cache $skip_cache;

add_header X-Cache "$upstream_cache_status From $host";

fastcgi_cache xbnb; #注意!此处要与第一步配置中的 keys_zone 名称相同,在本例中,keys_zone 用的是 xbnb 所以此处也用的 xbnb

add_header Cache-Control max-age=0;

add_header Nginx-Cache "$upstream_cache_status";

add_header Last-Modified $date_gmt;

add_header X-Frame-Options SAMEORIGIN; #只允许本站用 frame 来嵌套

add_header X-Content-Type-Options nosniff; #禁止嗅探文件类型

add_header X-XSS-Protection "1; mode=block"; #XSS 保护

etag on;

fastcgi_cache_valid 200 301 302 304 1d; #缓存的状态码和缓存时间

}

#缓存清理配置 (可选模块,请细看下文说明)

location ~ /purge(/.*) {

allow 127.0.0.1;

allow x; #注意!将此处的 X 替换为你服务器的真实 IP 地址,设置教程 https://www.xbnb.cn/14346

deny all;

fastcgi_cache_purge xbnb "$scheme$request_method$host$1"; #注意!此处要与第一步配置中的 keys_zone 名称相同,在本例中,keys_zone 用的是 xbnb 所以此处也用的 xbnb

}

  • 第 21 行的/tmp/php8.sock 修改为自己服务器 PHP 的连接配置,在此文 的部分已演示如何找;
  • ⭕第 23 行的 enable-php-80.conf 修改为自己服务器 PHP 的 conf 文件位置,在此文 的部分已演示如何找;
  • ⭕第 29 行的名称要与教程第一步中的 keys_zone 名称 xbnb 相同,如果你没改动第一步提供的配置范例,那么此处也不用改动;
  • ⭕第 43 行的 X 替换为你自己服务器的真实 IP 地址;
  • ⭕第 45 行的名称要与教程第一步中的 keys_zone 名称 xbnb 相同,如果你没改动第一步提供的配置范例,那么此处也不用改动;

最后检查 Nginx 的缓存是否生效

f12 查看网络的首页部分的响应头的 nginx-cache 是否是 HIT,如果是,则已经生效了

图片[6]-wordpress性能优化:为nginx添加Nginx fastcgi_cache 静态缓存加速(秒杀各种wp缓存插件)-SW兴趣使然

举一反三

同一个服务器的多个网站都开启 Nginx fastcgi_cache 缓存

就在已添加的 Nginx 配置基础上,再加一行代码,为第二个网站设置不同的 fastcgi_cache_path 路径和 keys_zone 名称 (大写),比如,可将第二个网站 fastcgi_cache_path 设置为 /tmp/wpcache2  将 keys_zone 设置为 lsposed

网站 配置

复制第一个网站的缓存配置,只需要将第 29 和 45 行的名称,改为 lsposed 也就是和 Nginx 配置新加的一行代码中的 keys_zone 名称相同,然后将修改好的网站配置文件,复制到第二个网站的配置中即可。

如果添加第三个网站,依次类推,为 Nginx 配置再加一行代码,以及将第三个网站的缓存配置中的第 29 和 45 行的名称,改为与 Nginx 配置新加代码中 keys_zone 名称相对应即可。

图片[7]-wordpress性能优化:为nginx添加Nginx fastcgi_cache 静态缓存加速(秒杀各种wp缓存插件)-SW兴趣使然
© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容