能显著降低PHP-FPM压力并提升并发响应速度;它由Nginx在反向代理层实现,命中时完全不触达PHP,效果接近静态页面,需正确配置fastcgi_cache_path、fastcgi_cache、fastcgi_cache_valid及缓存跳过逻辑,并忽略PHP返回的Cache-Control等禁用头。

直接用 Nginx 的 fastcgi_cache 缓存 PHP 页面,能显著降低后端 PHP-FPM 压力,提升并发响应速度。它不是插件式缓存,而是由 Nginx 在反向代理层完成的底层缓存,命中时完全不触达 PHP,效果接近静态页面。
确认 Nginx 支持并启用 fastcgi_cache 模块
宝塔面板默认安装的 Nginx(1.20+ 或 1.22+)已内置 --with-http_fastcgi_module,但需验证是否可用:
- 进入【软件商店】→ 找到 Nginx → 【设置】→ 【配置修改】
- 在配置文件最顶部空白处添加一行测试配置:
fastcgi_cache_path /www/server/nginx/fastcgi_cache levels=1:2 keys_zone=phpcache:100m inactive=30m use_temp_path=off; - 点击【保存】,若无“unknown directive”报错,说明模块就绪;否则需升级 Nginx 或重装支持版本
创建缓存目录并正确授权
缓存路径必须由 Nginx 工作进程用户(通常是 www)可读写,否则目录始终为空、缓存永不生效:
- SSH 登录服务器,执行:
mkdir -p /www/server/nginx/fastcgi_cache - 设置归属与权限:
chown -R www:www /www/server/nginx/fastcgi_cache && chmod -R 755 /www/server/nginx/fastcgi_cache - 验证:
ls -ld /www/server/nginx/fastcgi_cache应显示 owner 为www,且含drwxr-xr-x权限
在网站配置中定义缓存规则
进入【网站】→ 目标站点 → 【设置】→ 【配置文件】,在 server{...} 块内插入以下内容(放在 location ~ \.php$ 上方或内部均可,推荐放内部):
- 启用缓存区域:
fastcgi_cache phpcache;(名称须与keys_zone一致) - 设定缓存有效期:
fastcgi_cache_valid 200 301 302 10m;fastcgi_cache_valid 404 1m; - 控制跳过缓存的条件(关键!避免缓存登录态、后台、带参数页):
set $skip_cache 0;if ($request_uri ~* "/wp-admin/|/wp-login.php|/admin/") { set $skip_cache 1; }if ($query_string != "") { set $skip_cache 1; }if ($http_cookie ~* "comment_author|wordpress_logged_in|wp-postpass") { set $skip_cache 1; } - 关联跳过逻辑:
fastcgi_cache_bypass $skip_cache;fastcgi_no_cache $skip_cache; - (可选)加响应头便于调试:
add_header X-Cache "$upstream_cache_status";
注意事项与常见问题
缓存生效依赖几个隐性前提,漏掉任一环节都会导致“配置写了但没缓存”:
-
PHP 不得返回禁止缓存的响应头:务必在配置中加入
fastcgi_ignore_headers Cache-Control Expires Set-Cookie;,否则 PHP 输出的Cache-Control: no-cache会直接让 Nginx 放弃缓存 -
缓存 key 要合理:推荐使用
fastcgi_cache_key "$scheme$request_method$host$request_uri";,包含请求方法可避免 HEAD 请求污染 GET 缓存 -
不要跨站点共用 keys_zone:多站点部署时,每个站应配独立
keys_zone名称和缓存路径,防止 key 冲突或误清 - 上线前用
curl -I 域名/某文章页查看响应头中的X-Cache: HIT或MISS,结合du -sh /www/server/nginx/fastcgi_cache观察目录增长,双重验证是否真生效
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











