- 该帖子包含 1 人参与 和 0 条回帖。

什么是 FastCGI Cache 缓存?
FastCGI Cache 是 Nginx 服务器提供的一种缓存机制,用于提高动态内容的性能。它特别适合处理 FastCGI 协议的应用,比如 PHP(Wordpress)。FastCGI Cache 从系统层面实现网页静态化,极大减少服务器负担、并发能力以及提供提高网站加载速度。
Nginx 使用 FastCGI Cache 缓存有什么优点?
对 WordPress 来说,FastCGI Cache 缓存跟常规通过 Wp Rocket 等插件实现缓存有啥区别?FastCGI Cache 缓存是系统层面缓存,仅由 Nginx 处理 (PHP 不参与),因此速度很快,能承担很多并发。缺点是没那么灵活、功能少、有点使用门槛,所以小白很少听说这个缓存。
通过 WP Rocket 等缓存插件实现的缓存是软件层面的缓存,由 PHP 处理 (Nginx 不参与),因此速度慢一些,占用服务器资源多。WordPress 缓存插件优点是通过插件控制,易用易懂、非常灵活,功能丰富,大众最爱。
| 缓存类型 | 工作层级 | 主要功能 | 必要性 |
|---|---|---|---|
| Nginx FastCGI Cache | 服务器层 | 完整的 HTML 页面缓存 | 必须 |
| WordPress 缓存插件 | 应用层 | 对象缓存、数据库优化、静态文件优化 | 推荐 |
Nginx FastCGI Cache 负责:
# 服务器级完整页面缓存
- 缓存完整的HTML输出
- 在Web服务器层面直接响应
- 极大减轻PHP和数据库压力
- 响应速度最快(毫秒级)WordPress 缓存插件负责:
// 应用级优化
- 对象缓存(Redis/Memcached)
- 数据库查询优化
- CSS/JS压缩和合并
- 图片懒加载
- 缓存预热和智能清理
- CDN集成绝大部分时候内存被耗尽或者 CPU 超负荷都是因为 PHP 在运行庞大任务导致。
FastCGI Cache 缓存不需要运行 PHP,因此占用资源少很多,极大减轻服务器负担。
同时 FastCGI Cache 缓存由 Nginx 处理,所以计算链路比 WP Rocket 等插件实现的缓存短很多,因此速度更快。FastCGI Cache 缓存有些环境下甚至比 LiteSpeed Cache 缓存还快!
注意:FastCGI Cache 对服务器性能要求高,如果是 1H1G 之类低配置,再怎么优化效果也不明显。
由于 FastCGI Cache 会缓存 PHP 请求,可能会导致网站异常。例如阅读量计数失效、缓存评论者信息、缓存登陆界面等,需要添加额外代码排除。因此不建议新手使用 FastCGI Cache 缓存。
FastCGI Cache 缓存需要使用专门缓存插件。
Nginx 如何启用 FastCGI Cache 缓存?
宝塔面板默认已经编译了 Nginx ngx_cache_purge 模块,无需额外安装,直接按下面教程操作即可。
全局设置
登录宝塔后台,在软件商店找到 Nginx,点击设置按钮,在“配置修改”里添加以下内容:
fastcgi_cache_path /tmp/wpcache levels=1:2 keys_zone=WORDPRESS:250m inactive=1d max_size=1G; 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; #忽略一切 nocache 申明,避免不缓存伪静态等 fastcgi_ignore_headers Cache-Control Expires Set-Cookie;
网站设置
在宝塔后台网站列表中找到相应网站,点击“设置”按钮,将以下代码添加到配置文件中,第 43 行输入网站服务器 IP (外网)地址。代码要按需调整!
不同网站情况不一样!
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|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;
}
#这里请参考你网站之前的配置,特别是sock的路径,弄错会显示502!如果你的网站使用PHP7.4,就写-74.sock
location ~ [^/]\.php(/|$)
{
try_files $uri =404;
fastcgi_pass unix:/tmp/php-cgi-74.sock;
fastcgi_index index.php;
include fastcgi.conf;
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 WORDPRESS;
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 1d;
}
#缓存清理配置
location ~ /purge(/.*) {
allow 127.0.0.1;
allow “服务器外网 IP“; # 引号要保留
deny all;
fastcgi_cache_purge WORDPRESS “$scheme$request_method$host$1”;
}
添加完后保存,重启 Nginx 就行,接下来是安装设置缓存插件↓。
安装 WordPress 清理缓存插件
FastCGI Cache 无法自动及时精准清理网站缓存,所以需要安装配套缓存插件自动控制刷新缓存。后台搜索、安装 Nginx Helper 插件,这个插件专门为 FastCGI Cache 缓存打造。
Nginx Helper 插件官网链接:https://wordpress.org/plugins/nginx-helper/
Nginx Helper 插件设置参考下图

清理模式选择 Delete local server cache files,直接从服务器删除缓存文件然后重新生成。
如何判断 FastCGI Cache 缓存状态?
- 检查 HTTP 响应头这是最直接的方法。如果开启了 Nginx FastCGI Cache,在访问网站页面时,HTTP 响应头中通常会包含一个特定的头部,例如
X-Proxy-Cache或X-FastCGI-Cache。- 操作方法:打开浏览器开发者工具(按 F12),切换到 “网络 (Network)” 选项卡,刷新页面,然后点击任何一个请求(通常是文档请求),查看 “响应头 (Response Headers)”。
- 如果开启:你可能会看到类似
X-Proxy-Cache: HIT(缓存命中)或X-Proxy-Cache: MISS(缓存未命中)的字段。字段名可能因配置而异,常见的有X-Nginx-Cache、X-Cache等。 - 如果未开启:则不会有此类缓存相关的响应头。
- 查看 Nginx 配置文件如果您有服务器的访问权限,最准确的方法是直接检查 Nginx 的配置文件(通常是
nginx.conf或sites-available/目录下的虚拟主机文件)。查找与fastcgi_cache_path、fastcgi_cache、add_header等相关的指令。 - 使用在线工具或命令行
- 在线工具:一些在线的 HTTP 头部检测工具可以帮你查看完整的响应头。
- 命令行:使用
curl命令可以快速获取头部信息: curl -I https://abc.com
最简单方便就是访问网站:https://httpheader.io/,直接可以查看结果:
| # | Header name | Header value |
|---|---|---|
| 0 | HTTP/1.1 200 OK | |
| 1 | Date: | Thu, 13 Nov 2025 07:08:34 GMT |
| 2 | Content-Type: | text/html; charset=UTF-8 |
| 3 | Connection: | close |
| 4 | Server: | cloudflare |
| 5 | vary: | Accept-Encoding |
| 6 | x-ua-compatible: | IE=edge |
| 7 | strict-transport-security: | max-age=63072000; includeSubdomains; preload |
| 8 | x-cache: | HIT From wpforo.cn |
| 9 | Cache-Control: | max-age=0 |
| 10 | nginx-cache: | HIT |
| 11 | last-modified: | Thursday, 13-Nov-2025 07:08:33 GMT |
| 12 | x-frame-options: | SAMEORIGIN |
| 13 | x-content-type-options: | nosniff |
| 14 | x-xss-protection: | 1; mode=block |
| 15 | Report-To: | {“group”:”cf-nel”,”max_age”:604800,”endpoints”:[{“url”:”https://a.nel.cloudflare.com/report/v4?s=HElbdY4ampnWzI6risTdMw8eUnRRX%2FPDl%2Fjp2rNIwA4GHrCOB3A250%2BnWFez7XU0I7KKroeJbsm8Ec9ig6tAWt%2Bsqze8I%2FygzQ%3D%3D”}]} |
| 16 | cf-cache-status: | DYNAMIC |
| 17 | Nel: | {“report_to”:”cf-nel”,”success_fraction”:0.0,”max_age”:604800} |
| 18 | CF-RAY: | 99dc70434ad4e228-MRS |
| 19 | alt-svc: | h3=”:443″; ma=86400 |
- HIT:缓存成功
- MISS:缓存失败,建议刷新页面 2 次看下有没有变成 HIT。
- BYPASS:跳过缓存
- EXPIRED:缓存过期
- 您必须登录才能回复该帖子。

