Nginx Cache 是一款“小而美”的 WordPress 工具插件,专注于 Nginx FastCGI 缓存清除的插件,把“清除 Nginx 缓存”这一件事做到了极致。
如果你是 Nginx 服务器管理员,正在寻找一个简单、可靠、不增加系统负担的缓存清除方案,那么这款插件几乎是完美的选择。但请注意,它不适合共享主机环境,并且要求你具备一定的服务器配置基础。

Nginx Cache 会在内容发生变化时自动清除 Nginx 缓存(FastCGI、Proxy、uWSGI),或在 WordPress 后台手动清除。
下载地址:https://wordpress.org/plugins/nginx-cache/
Nginx Cache 要求:
- 文件系统 API 应无需请求凭据即可正常运行。
- Nginx 和 PHP 需要在同一用户下运行,或者 PHP 的用户需要对 Nginx 的缓存路径拥有写权限。
截图

Nginx Cache 插件在 WordPress 官方仓库拥有 4.6 星 的高评价和超过 1万 的活跃安装量。用户普遍称赞其轻量、高效、完美解决了 Nginx 缓存的清除难题。
如果你想了解其他选择,可以考虑:
-
Nginx Helper:这是一款功能更丰富的插件,除了清除缓存,还提供优化 Nginx 配置、支持 Redis 缓存清除等功能,但设置也更复杂。
-
FlynCache Purge:一款较新的全能型缓存管理插件,可以自动检测 Nginx、Redis、LiteSpeed、Cloudflare 等多种缓存并统一进行清除。
-
Cache Control by Cacholong:另一个专注于 Nginx FastCGI 缓存清除的插件,支持通过 WP-CLI 和 Cron 任务进行更精细化的控制。
如何在 WordPress 站点在 Nginx 上配置 FastCGI 缓存?
为 WordPress 站点在 Nginx 上配置 FastCGI 缓存,主要分为定义缓存空间和配置缓存规则两大步骤。完成后,再配合缓存清理插件,就能实现高效的页面缓存。
整个配置过程的核心,其实就是修改 Nginx 的配置文件,具体分三步走。
第一步:在全局配置中定义缓存空间
首先,需要编辑 Nginx 的主配置文件(通常是 nginx.conf),在 http {} 块内添加 fastcgi_cache_path 指令来定义缓存文件的存放位置和参数。
# 在 http {} 块中添加 fastcgi_cache_path /var/cache/nginx/fastcgi_cache levels=1:2 keys_zone=WORDPRESS:100m inactive=60m use_temp_path=off; fastcgi_cache_key "$scheme$request_method$host$request_uri";
-
fastcgi_cache_path:定义了缓存目录(/var/cache/nginx/fastcgi_cache)、目录结构(levels=1:2)、缓存区名称和内存大小(keys_zone=WORDPRESS:100m)、缓存有效期(inactive=60m)等。 -
fastcgi_cache_key:定义了生成缓存文件的唯一标识符,通常使用请求的协议、方法、域名和URI。
操作提示:你需要先手动创建这个缓存目录,并确保 Nginx 运行用户(如 www-data 或 nginx)对其有读写权限。同时,不建议在缓存Key中使用 $args 查询参数,否则带不同跟踪码的相同页面会生成多份缓存,浪费空间。
第二步:在站点配置中应用缓存规则
接着,编辑你站点的配置文件(通常在 conf.d/ 或 sites-available/ 目录下),在 server {} 块中针对 PHP 请求配置缓存规则。
server { # ... 其他 server 配置 set $skip_cache 0; # 不缓存POST请求、带查询字符串的请求、后台及登录用户 if ($request_method = POST) { set $skip_cache 1; } if ($query_string != "") { set $skip_cache 1; } if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-.*.php|/feed/|index.php") { set $skip_cache 1; } if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_logged_in") { set $skip_cache 1; } location ~ \.php$ { fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 确保路径与你的PHP-FPM配置一致 include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # 应用缓存 fastcgi_cache WORDPRESS; # 名称需与 keys_zone 一致 fastcgi_cache_bypass $skip_cache; fastcgi_no_cache $skip_cache; fastcgi_cache_valid 200 301 302 10m; # 成功及重定向页面缓存10分钟 fastcgi_cache_valid 404 1m; # 404页面缓存1分钟 add_header X-FastCGI-Cache $upstream_cache_status; # 添加调试头,查看缓存状态 } }
-
关键的
$skip_cache规则:通过一系列if语句,可以精准控制哪些内容不被缓存:-
POST 请求:提交表单、登录等操作不应缓存。
-
带查询字符串的请求:如搜索、分页结果,避免缓存不必要的内容。
-
WordPress 后台及特定文件:
/wp-admin/、xmlrpc.php等管理功能绝不缓存。 -
已登录用户和评论者:他们看到的页面包含个性化内容,需要绕过缓存。
-
-
fastcgi_cache_valid:为不同的HTTP响应状态码设置缓存有效期,这是性能和安全性的平衡,过长的缓存会导致内容更新不及时。
第三步:安装清理插件并验证
Nginx 默认没有提供直接的缓存清理接口,通常需要额外编译 ngx_cache_purge 模块,或使用 WordPress 插件更方便。
-
安装插件:在 WordPress 后台搜索安装 Nginx Helper 插件。
-
配置插件:在插件设置中,选择缓存类型为 “Nginx FastCGI Cache”,清理模式推荐选择 “Delete local server cache files”(直接删除本地文件),这个模式对服务器环境配置要求更低,不容易出错。
-
定义缓存路径(重要):如果插件无法自动找到你的缓存目录,需要在
wp-config.php文件中添加以下代码,告诉插件缓存文件的具体位置:define( 'RT_WP_NGINX_HELPER_CACHE_PATH', '/var/cache/nginx/fastcgi_cache' );
-
验证缓存:配置生效后,在浏览器开发者工具的“网络”面板中,查看任意页面响应的Headers。如果看到
X-FastCGI-Cache: HIT,就说明缓存已成功命中;MISS则表示未命中,可能是首次访问;BYPASS则表示因$skip_cache规则被绕过了。
常见问题与提示
-
启动失败:最可能的原因是
fastcgi_cache_path指定的目录不存在或权限不足。请确保目录已创建且 Nginx 用户有读写权限。 -
缓存不生效:仔细检查
fastcgi_pass的路径(如 PHP-FPM socket 地址)是否和现有配置一致,否则会导致PHP请求错误,从而无法缓存。 -
宝塔面板用户:如果你的服务器使用宝塔面板,这些配置可以直接在面板的“Nginx配置修改”和“网站设置-配置文件”中编辑。宝塔编译的Nginx通常已经包含
ngx_cache_purge模块,可以更方便地实现按URL清理缓存。