• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

Nginx-helper纯代码版,文章评论发布自动清理Fastcgi缓存

建站经验 admin 10个月前 (06-23) 155次浏览 0个评论

摘 要

张戈博客之前分享过Nginx开启fastcgi静态缓存加速的教程,文中也提到了WordPress对应的最佳配套插件:Nginx-Helper。本文分享一个博客自用、原创的Nginx-Helper纯代码版本,帮你的网站再消灭一个插件。

Nginx-Helper 这款插件主要用于 Nginx 的 Fastcgi 缓存或 Redis 缓存清理,用起来确实不错,堪称绝配!感兴趣可以翻看博客之前的分享:

Nginx 开启 fastcgi_cache 缓存加速,支持 html 伪静态页面

解决 Nginx Helper 插件一键清理缓存功能导致网站打不开问题

最近,发现文章发布缓存清理不生效了,开启日志看了下,发现插件清理文章缓存的时候在文章地址后多加了一个斜杠,比如 https://zhangge.net/5111.html/ ,那这样肯定不行了,因为 fastcgi 缓存是和 url 密切相关的,多一个斜杠,自然就南辕北辙了。

想想可能是和我博客加了 “分类地址后面自动加斜杠” 的机制导致的吧!懒得研究如何解决,想起之前给有偿用户写过一个纯代码版本,解决 PHP 版本过低无法兼容 Nginx-Helper 插件的问题。这次正好拿来完善一下,而且还能消灭一个插件。

经过代码编写、测试验证,一个简单的 Nginx-Helper 纯代码原创版本就新鲜出炉了。

Ps:2016 年 12 月 11 日更新:修复了文章更新发布无法清理首页缓存问题,请重新拷贝如下代码。

根据实际情况,修改代码中的缓存路径配置:

Ps:这个路径其实就是 Nginx Fastcgi 缓存配置中的 fastcgi_cache_path 参数,详见前文分享。

然后,将整段粘贴到 WordPress 主题函数模板文件 functions.php 当中即可。其他功能细项,在代码中都有详细的注释了,自行参考修改。

现在发布/更新文章、评论提交/审核,就会自动删除当前文章缓存了,发布/更新文章还会清理首页、分类以及相关标签页缓存(不需要可根据代码中的注释进行屏蔽)。

另外,如果想清理全部缓存,可在管理员登陆状态下访问首页+?purge=all 参数,比如:http://zhangge.net/?purge=all ,其他用户或访客访问这个地址则没有任何作用,如果还不放心也可以自行更改代码中的参数判断字符串。

经过测试,这种带参数的路径同样会被 Nginx 缓存,也就说?purge=all 只能用一次,第二次刷新就没效果了,因为被 Nginx 缓存了,要解决也很简单,在 fastcgi 缓存配置中排除这个路径即可:

当然,如果是按照 Nginx-Helper 插件,那还能添加更多功能,比如清理订阅页面缓存什么的。但是我觉得并不需要,有以上基础功能已经足够了。有模仿能力、动手能力的站长朋友,完全可以在以上代码的基础上添加自己想要的功能,相信也是小菜一碟。


乐趣公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Nginx-helper纯代码版,文章评论发布自动清理Fastcgi缓存
喜欢 (0)
[sp91@qq.com]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址