正确使用batcache缓存静态页面

作者: writer 分类: 技术 发布时间: 2017-10-26 11:54 ė 1284 6 没有评论

正确使用batcache缓存静态页面
wordpress站点静态化有两种方案:

  • nginx的fastcgi缓存
  • 基于memcached的batcache插件
    前者将html页面静态化生成文件保存在服务器硬盘,响应客户端需求发送出去。后者将html页面静态化到内存,根据需要发送到浏览器。
    这两种方案的效果对于访问者来讲基本上都差不多,可能fastcgi缓存的方式能应对更大并发数的请求,但是对于小流量的博客而言这个优点可能并不重要。

利用nginx的fastcgi缓存方案的缺点:

  • 在服务器端部署nginx时需要把ngx_purge插件编译进去,如果是使用lnmp一键包的用户还要手动重新编译替换nginx
  • nginx配置文件需要额外加入针对fastcgi的内容
  • wordpress主题functions.php需要加入清除缓存的代码,或者安装nginx helper插件
    由于这些额外的安装配置和设定,迁移博客时可能会比较麻烦。

对于懒人来讲,在静态化性能差不多的情况下,还是用batcache去做缓存比较方便。前文memcached安装已经提到了如何安装部署memcached服务端,安装object-cache和batcache的drop-in插件,这里不再赘述。这里只额外提一些需要注意的问题。

object-cache 安装和测试

  • memcached服务端监听127.0.0.1的11211端口,注意看iptables防火墙规则是否阻止了这个端口。
  • object-cache最新代码可以从github项目上下载: 下载地址object-cache,在项目主页上还提到了如何测试object-cache是否能正常运行,将下面的代码保存为test.php放到wp-content/mu-plugins目录下,如果不存在的话就创建该目录

batcache安装和注意事项

  • batcache的最新代码可以从github项目上下载:下载地址batcache。将advanced-cache.php放入wp-content/目录下即可,默认缓存时间300秒。如果需要缓存更长时间或者改动其他配置,修改下面这几行

  • 不要忘了在wp-config.php内定义WP_CACHE
  • 项目内还提供了batcache-stats-example.php,重命名为batcache-stats.php并和advanced-cache.php放到一起,能打开日志功能,默认写入/var/spool/wpcom/extra目录下。
  • batcache生成的缓存会在下面情况下自动刷新
    • 发评论
    • 更新文章
    • 发布新文章
  • 如果浏览器发送http请求包含cookie的话,batcache不会调用缓存的内容,因此登录用户或者刚发过评论的用户,看到的都是最新的页面内容。
  • 快速清除全部缓存
    目前作者表示没有开发清除所有缓存的功能见此issue:No clear all method,如果非要清除所有缓存,可以重启memcached服务端。
    service memcached restart

本文出自扉启博客,转载时请注明出处及相应链接。

本文永久链接: https://www.feiqy.com/batcache-best-practice/

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Ɣ回顶部