详情 评论 问答 WordPress优化【Nginx缓存篇】云先森5天前更新关注私信05812 说到wordpress的缓存,大家想到的肯定是 WP-Super-Cache 的静态html缓存,以及 memcached 或 redis 动态缓存,插件的缓存效果肯定是有的,但是容易出现各种问题,比如配置很复杂、配置全英文、插件之间的冲突等,所以今天我要教大家一个更高级的缓存:Nginx fastcgi_cache缓存,直接在nginx层面缓存页面,还支持缓存伪静态!效果比起传统的php缓存好得太多了,因为很多人使用宝塔面板,所以今天的教程是基于宝塔面板的教程。 现在宝塔面板都默认编译了 Nginx ngx_cache_purge 模块,所以我们直接跳过安装方法。 查看Nginx模块 nginx -V 2>&1 | grep ngx_cache_purge -o 控制台显示如下: Nginx配置 创建缓存目录 sudo mkdir -p /var/cache/nginx/fastcgi_cache sudo chown -R www-data:www-data /var/cache/nginx/fastcgi_cache sudo chmod -R 755 /var/cache/nginx/fastcgi_cache 全局设置 现在我们开始配置nginx,来到宝塔后台,在软件商店找到Nginx,点击设置按钮,在配置修改中添加以下内容: fastcgi_cache_path /var/cache/nginx/fastcgi_cache levels=1:2 keys_zone=WORDPRESS:250m inactive=1d use_temp_path=off; 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; 加好之后截图如下: 网站设置 在宝塔后台的网站列表中,找到你的网站,并且点击设置按钮,将以下代码添加到配置文件中去: 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; include fastcgi_params; fastcgi_pass unix:/tmp/php-cgi-82.sock; #修改成自己的PHP版本 fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # FastCGI 缓存设置 fastcgi_cache_bypass $skip_cache; fastcgi_no_cache $skip_cache; fastcgi_cache WORDPRESS; fastcgi_cache_valid 200 301 302 30d; # 添加缓存头 add_header X-FastCGI-Cache $upstream_cache_status; } #缓存清理配置 location ~ /purge(/.*) { fastcgi_cache_purge WORDPRESS "$scheme$request_method$host$1"; } 加好之后的截图如下: 个人推荐放在#SSL-END 添加好之后,重载Nginx设置,缓存就加好了。 WordPress清理缓存插件 后台搜索 Nginx Helper 插件安装启用,这个插件是为 wordpress fastcgi_cache缓存 打造的一个插件,十分的好用。 判断缓存状态 按 F12 开启开发者工具,访问你的网站,并检查响应头是否包含 X-FastCGI-Cache: HIT 表示缓存命中。 MISS 表示未命中。 BYPASS 表示跳过缓存。 Nginx缓存清理失效 在WordPress配置文件中添加: //根据实际情况定义缓存的存放路径 define( 'RT_WP_NGINX_HELPER_CACHE_PATH','/var/cache/nginx/fastcgi_cache'); 不知道添加到第几行的话,可以添加到 define(‘WPLANG’, ‘zh_CN’); 的后面即可。添加后建议重载一下 php,确保变量生效。 PHP防跨站攻击设置 这个一定要关闭,否则在后台插件将无法清除缓存。 温馨提示: 本文最后更新于2025-05-28 19:00:12,某些文章具有时效性,若有错误或已失效,请在下方留言或联系柒小颜博客。 ©文章版权归作者所有 本站资源大多来自网络,如有侵犯你的权益请联系管理员,我们会第一时间进行审核删除。站内资源为网友个人学习或测试研究使用,未经原版权作者许可,禁止用于任何商业途径!请在下载24小时内删除! 如果遇到付费才可观看的文章,建议升级会员或者成为认证用户。全站所有资源“任意下免费看”。本站资源少部分采用7z压缩,为防止有人压缩软件不支持7z格式,7z解压,建议下载7-zip,zip、rar解压,建议下载WinRAR。 THE ENDWordPress教程笔记 喜欢就支持一下吧点赞12赞赏 分享QQ空间微博QQ好友海报分享复制链接收藏如何下载资源?您可以通过搜索或浏览分类列表来找到您期望下载的资源。随后点击资源介绍页右侧的下载链接按钮,依据提示信息进行操作即可。是否需要充值才能下载?大部分资源可积分免费下载,为了维持网站的运行小部分资源须付费才能下载。下载的资源是否有版权?本站提供的下载资源均为网络搜集,仅供个人学习和交流使用。对于版权问题,请用户自行判断并承担相应责任。
WordPress优化【Nginx缓存篇】云先森5天前更新关注私信05812 说到wordpress的缓存,大家想到的肯定是 WP-Super-Cache 的静态html缓存,以及 memcached 或 redis 动态缓存,插件的缓存效果肯定是有的,但是容易出现各种问题,比如配置很复杂、配置全英文、插件之间的冲突等,所以今天我要教大家一个更高级的缓存:Nginx fastcgi_cache缓存,直接在nginx层面缓存页面,还支持缓存伪静态!效果比起传统的php缓存好得太多了,因为很多人使用宝塔面板,所以今天的教程是基于宝塔面板的教程。 现在宝塔面板都默认编译了 Nginx ngx_cache_purge 模块,所以我们直接跳过安装方法。 查看Nginx模块 nginx -V 2>&1 | grep ngx_cache_purge -o 控制台显示如下: Nginx配置 创建缓存目录 sudo mkdir -p /var/cache/nginx/fastcgi_cache sudo chown -R www-data:www-data /var/cache/nginx/fastcgi_cache sudo chmod -R 755 /var/cache/nginx/fastcgi_cache 全局设置 现在我们开始配置nginx,来到宝塔后台,在软件商店找到Nginx,点击设置按钮,在配置修改中添加以下内容: fastcgi_cache_path /var/cache/nginx/fastcgi_cache levels=1:2 keys_zone=WORDPRESS:250m inactive=1d use_temp_path=off; 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; 加好之后截图如下: 网站设置 在宝塔后台的网站列表中,找到你的网站,并且点击设置按钮,将以下代码添加到配置文件中去: 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; include fastcgi_params; fastcgi_pass unix:/tmp/php-cgi-82.sock; #修改成自己的PHP版本 fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # FastCGI 缓存设置 fastcgi_cache_bypass $skip_cache; fastcgi_no_cache $skip_cache; fastcgi_cache WORDPRESS; fastcgi_cache_valid 200 301 302 30d; # 添加缓存头 add_header X-FastCGI-Cache $upstream_cache_status; } #缓存清理配置 location ~ /purge(/.*) { fastcgi_cache_purge WORDPRESS "$scheme$request_method$host$1"; } 加好之后的截图如下: 个人推荐放在#SSL-END 添加好之后,重载Nginx设置,缓存就加好了。 WordPress清理缓存插件 后台搜索 Nginx Helper 插件安装启用,这个插件是为 wordpress fastcgi_cache缓存 打造的一个插件,十分的好用。 判断缓存状态 按 F12 开启开发者工具,访问你的网站,并检查响应头是否包含 X-FastCGI-Cache: HIT 表示缓存命中。 MISS 表示未命中。 BYPASS 表示跳过缓存。 Nginx缓存清理失效 在WordPress配置文件中添加: //根据实际情况定义缓存的存放路径 define( 'RT_WP_NGINX_HELPER_CACHE_PATH','/var/cache/nginx/fastcgi_cache'); 不知道添加到第几行的话,可以添加到 define(‘WPLANG’, ‘zh_CN’); 的后面即可。添加后建议重载一下 php,确保变量生效。 PHP防跨站攻击设置 这个一定要关闭,否则在后台插件将无法清除缓存。 温馨提示: 本文最后更新于2025-05-28 19:00:12,某些文章具有时效性,若有错误或已失效,请在下方留言或联系柒小颜博客。 ©文章版权归作者所有 本站资源大多来自网络,如有侵犯你的权益请联系管理员,我们会第一时间进行审核删除。站内资源为网友个人学习或测试研究使用,未经原版权作者许可,禁止用于任何商业途径!请在下载24小时内删除! 如果遇到付费才可观看的文章,建议升级会员或者成为认证用户。全站所有资源“任意下免费看”。本站资源少部分采用7z压缩,为防止有人压缩软件不支持7z格式,7z解压,建议下载7-zip,zip、rar解压,建议下载WinRAR。 THE ENDWordPress教程笔记 喜欢就支持一下吧点赞12赞赏 分享QQ空间微博QQ好友海报分享复制链接收藏