WordPress启用Nginx缓存

2018-08-21 4742点热度 4人点赞 1条评论

Nginx的fastcgi_cache缓存的方法,由于不依赖于php服务端,完全又nginx服务器相应HTML页面请求,性能应该更佳。而且这个做法实际上也是百度云加速、CloudFlare等CDN服务的实现方法,因此又开始折腾这种缓存方法,真正实现网站全静态化。

前期准备

nginx缓存依赖于ngx_cache_purge模块,确保这个模块已经安装,本站使用“宝塔”面板默认已经安装

修改配置文件,请仔细阅读代码中的所有注释,根据实际情况修改。

前两行定义了缓存存储的路径,位于 /tmp/wpcache和 /tmp/wpcache/temp,如果这个路径不存在的话,手动创建这两个目录,并且确保www用户有可写权限。

安装插件

按照前面的设置,nginx缓存应该可以运行了。但是有些时候我们希望某些页面能在发生更新的时候自动清除缓存(比如文章内容更新,访客评论,阅读数刷新),不然网站一直显示的是缓存的内容,那就适得其反了。
针对fastcgi_cache的方式有一个专门的WordPress插件来完成自动清理缓存工作,叫做Nginx Helper

在WordPress后台安装这个插件,激活并按照下面所示配置其他选项

缓存清理的行为是直接删除本机上存储的缓存文件,这个路径名由变量RT_WP_NGINX_HELPER_CACHE_PATH定义,因此还需要在WordPress根目录下的wp-config.php中新增一行。

效果预览

①、缓存效果

替换新的配置,并且重载 Nginx 之后,访问前台页面,查看 header,会多出一个 X-Cache 标志。

X-Cache 一般会有 3 个状态:MISS、HIT、BYPASS。

  • MISS 表示未命中

即这个页面还没被缓存,新发布或刚被删除的页面,首次访问将出现这个状态(图略)。

  • HIT 表示缓存命中

打开一个会缓存的页面,比如文章内容 html 页面,F5 刷新几次即可在 F12 开发者模式当中的 Header 头部信息中看到如图缓存命中状态:

  • BYPASS 表示缓存黑名单

即页面路径在 Nginx 规则中被设置成不缓存(set $skip_cache 1;),比如 WP 后台,查看 header:

如果你发现想要缓存的页面却是这个状态,就可以去检查排除规则中是不是包含了这个路径!反之,如果你发现后台登录不了,或者各种登陆态丢失问题,则应该到排除规则中加上该页面路径的关键字。

②、清理效果

这个插件和缓存的搭配非常好用,不管我们是发布文章,还是有人发表评论,插件都能根据我们的设置来清理对应的缓存!比如有人发表了一个自动审核通过的评论(或博主审核通过一条评论),插件将会自动删除评论相关的文章缓存,具体看下上图张戈贴出的标注即可。

如何查看插件是否正常工作呢?很简单,勾选开启插件日志,然后去点击更新一篇旧文章,最后打开插件日志即可看到是否删除记录。

用 Linux 的朋友,可以直接使用 tailf 命令查看该日志,然后去更新文章即可看到效果,如下图所示:

至于要证实是否真的删除了缓存,我们可以先打开浏览器的开发者模式,定位到 network 界面,然后访问刚刚更新的文章,即可看到如下状态:

很明显,缓存已被成功删除,首页看都不用看,肯定也是这个状态了。

本文转载:

https://www.feiqy.com/fastcgi_cache/

https://zhangge.net/5042.html

六度

这个人很懒,什么都没留下

文章评论

  • 聚乐之家

    日常来访,记得微笑

    2018-12-28