WordPress 清除 FastCGI 缓存的插件:Nginx Helper

By | 最新修改:2024-08-17

前言

WordPress 插件“Nginx Helper”用来清除 FastCGI 缓存,无论 Nginx 将这些缓存放在文件还是 Redis 上。

使用该插件,既可以清除全部的 FastCGI 缓存,可以在评论或文章更新时刷新相关的缓存,也可以指定要清除的页面 URL 的缓存。

在优化之前, WordPress 一如既往地慢。一经优化,它就如猎豹般快捷,特别是用上 Nginx 的 FastCGI Cache 或者 Redis 缓存。无论之前 WordPress 多慢,只要它生成的网页被缓存起来,那么站点的访问会唰唰声加速。

在使用 FastCGI 缓存 之前:

应用 FastCGI  Cache之前

点击图片显示大图

在使用 FastCGI 缓存 之后:

应用 FastCGI  Cache之后

点击图片显示大图

那么,问题来了,当文章状态修改时,如何刷新缓存?总不能新更改的文章在缓存中依然是之前的版本吧!

WordPress 插件 Nginx Helper 就可随着文章的更新有选择地清除与相应文章相关联的页面缓存。

插件主页: https://wordpress.org/plugins/nginx-helper/


安装“Nginx Helper”

安装、激活和缷载 WordPress 插件教程

这里通过管理后台在线安装插件:

导航到“插件(Plugins) -> 安装插件(Add New)”,然后搜索“Nginx Helper”。

下图中的插件便是要安装的:

安装Nginx-Helper

点击图片显示大图


配置“Nginx Helper”

本插件配置界面在“设置(Settings) -> Nginx Helper”。

Caching Method(缓存方式)

这里选择缓存的方式,就是看 Nginx 的缓存是 fastcgi_cache 还是 Redis 了,二选一。

然而这不是随便选的,要看 Nginx 服务器用的是哪个。

由于作者只接触过 fastcgi_cache,因此本文介绍的是前者。

毫无疑问,这个选项选择“nginx Fastcgi cache”。

Purging Method(清除方式)

此选项是隐藏的。

只有上文选择“nginx Fastcgi cache”,它都会出现。

使用 GET 请求 PURGE 方式

这种方式需要 Nginx 的 ngx_cache_purge
模块的支持,它是编译进 Nginx 的。

启用它要在 Nginx 配置中添加以下的指令块:

location ~ /purge(/.*) {
    fastcgi_cache_purge WORDPRESS "$scheme$request_method$host$1";
}

若是编译安装好模块,并由该插件发出清除相关缓存的指令,Nginx 会要根据一定的条件移除相应的缓存。

删除本地服务器缓存文件

“Delete local server cache files”。

这种是插件通过一定的机制直接删除缓存文件的方式来清除 Nginx FastCGI 缓存。

此清除方式需要满足以下条件:

  1. 由插件规定的常量来设定缓存的根目录位置:

    用此方式来清除缓存,仅须由 WordPress 常量 RT_WP_NGINX_HELPER_CACHE_PATH 指定缓存根目录。不需要任何其他模块。

    在 WordPress 的 wp-config.php 文件定义上述的常量,其值是编译 Nginx 指定的 FastCGI 缓存路径。

    define("RT_WP_NGINX_HELPER_CACHE_PATH", "/var/run/fastcgi_cache/");
    

    通过 Linux Shell 命令 nginx -V 可查看 FastCGI 的路径。

  2. 要求缓存与 WordPress 存储在同一台服务器上;

  3. 必须使用默认的 nginx 缓存选项 levels=1:2fastcgi_cache_key "$scheme$request_method$host$request_uri"

以上的最终配置如图:

清除方式设置总览

点击图片查看大图

然后是选择清除条件,也就是指定在什么时候会清除缓存,清除哪些缓存。

Purging Conditions(清除条件)

Purge Homepage(清除首页)

这部分有两个勾选项:

  1. 其一是当文章修改或创建时;
  2. 其二是当一张发布状态的文章放进垃圾箱时。

Purge Post/Page/Custom Post Type(清除各种类型的文章)

这部分有三个选项:

  1. 当一张文章发布时;
  2. 当一条评论被接受或发表时;

  3. 当一条评论未经批准或删除时。

Purge Archives(清除存档)

这里的存档指按“日期”、“分类”、“标签”、“作者”或者“自定义分类法”各自显示所属文章的页面。

这部分有四个选项:

  1. 当一张文章修改或新建;
  2. 当一张已经发布的文章被放进垃圾箱;

  3. 当一条评论被允许或发布时;

  4. 当一条评论未经批准或删除时。

Custom Purge URL(自定义清除 URL)

此文本框决定哪些指定的 URL 会被清除。

输入规则:

  1. 一行一条 URL;
  2. URL 不能包含域名,用相对路径;

  3. 通配符星号“*”仅能应用于清理 Redis 缓存。

以上的最终配置:

清除条件配置总览

点击图片查看大图

Debug Options(调试选项)

该部分选项用于启用和配置调试日志。

勾选“Enable Logging”(启用日志记录)可展开配置选项。

Logs path(日志路径)

指定清除日志记录的路径。

作者遇到的情况是不可更改此路径。

若开启日志记录,那么可以直接访问此文件查看日志。

View Log(查看日志)

点击“Log”链接可下载来自上面路径的日志文件。

Log level(日志级别)

这里有四个候选值,如图:

日志级别

点击图片显示大图

默认是“Info”,它是能记录的信息最多的,然后其他两个从上到下依次信息变少,所记录的调试信息重要程度增大。

Max log file size(日志的最大文件大小)

默认为 5Mb。

设置为自己需要的。

点击“Save All Changes”保存修改。

日志配置总览:

日志选项总览

点击图片查看大图

一键清除所有 FastCGI 缓存

Nginx Helper 配置界面的右上方有个红色背景白色字体的按钮,上面写着“Purge Entire Cache”。

只要点击它,当前所有的 FastCGI 缓存就会全部清除。

有时需要在 Linux Shell 中执行 /sbin/nginx -s reload 才能使“全部清除”生效!

在缓存清除之前会弹出确定对话框提示你是否继续进行清除,如果点击 “OK”,那么就继续清除缓存,点击“Cancel”就会取消这次的清除缓存操作。

清除所有缓存

点击图片查看大图


总结

Nginx Helper 是一款很简单易用好用的 WordPress FastCGI 缓存清除插件。

它的清除条件正好覆盖常见的需求。不仅如此,该插件还可以自定义清除的 URL。不过只能每次当清除操作执行时强制清除所有的自定义 URL。



程序知路

鉴于本人的相关知识储备以及能力有限,本博客的观点和描述如有错漏或是有考虑不周到的地方还请多多包涵,欢迎互相探讨,一起学习,共同进步。

本文章可以转载,但是需要说明来源出处!

本文使用的部分图片来源于网上,若是侵权,请与本文作者联系删除: admin@icxzl.com