WP Super Cache 是 WordPress 官方开发人员 Donncha 开发,是当前最高效也是最灵活的 WordPress 静态缓存插件。它把整个网页直接生成 HTML 文件,这样 Web 服务器就不用解析 PHP 脚本,通过使用这个插件,能使得你的 WordPress 博客将显著的提速。
WP Super Cache 基本介绍
WP Super Cache 是基于 Ricardo Galli Granada 的 WP-Cache 2。WP-Cache 2 可以缓存你的 WordPress 博客使得不用再次访问数据库,但是它产生的是 PHP 文件而不是 HTML 文件,所以还需要 PHP 引擎去解析它们。而 WP Super Cache 则直接产生 HTML 文件,所以服务器不用解析甚至一行 PHP 代码,所以缓存之后的速度就和访问你服务器上的一张图片一样快。
网站的绝大多数用户都会直接访问 WP Super Cache 生成的静态 HTML 文件,只要他:
- 没有登陆博客。
- 没有在博客上留过言。
- 或者没有访问一个密码保护的日志。
所以 99% 的用户访问到的都是静态缓存 HTML 文件,而那些不是直接访问到静态 HTML 文件的用户也会受益这个插件,他们访问到的是其他形式的缓存文件,虽然没有静态 HTML 那么有效率,但是好过没有缓存。
WP Super Cache 是如何工作的
WP Super Cache 通过以下三种方式缓存(按照缓存效率排序):
- Mod_Rewrite:最快的方式是通过 Apache mod_rewrite 模块(或者其他 Web 服务器中类似的模块)向用户提供静态 HTML 文件,这样就完全绕过了 PHP 解析器,速度飞快,可以轻松应对非常大的访问,并且服务器运作非常轻盈。不过这个方式需要 Apache 已经安装了 mod_rewrite 模块(或者其他 Web 服务器中类似的模块)以便博客能够支持固定链接,并且还需要修改你的 .htaccess 文件,匿名访问的用户通过这种方式访问。
- PHP:超级缓存静态文件除了 HTML 方式之外,现在还可以通过 PHP 方式来提高服务,速度几乎接近 mod_rewrite 方法,但是 PHP 方法更好配置,并且无需修改 .htaccess 文件。PHP 方法还是需要设置固定链接,还可以让你保持页面部分动态,但是面对大流量访问时候,就没有 mod_rewrite 方法出色了。
- 传统缓存:这个主要面对已知用户,那些已登录的,留过言的,这个方法更灵活,但也是最慢的,因为每次查看页面,信息是不同的,所以最好对这些用户不要缓存整个页面。
当页面的源代码最后面有如下的代码,就说缓存已经开始工作了:
<!-- Dynamic Page Served (once) in 0.829 seconds --> <!-- Cached page generated by WP-Super-Cache on 2009-01-12 16:11:54 --> <!-- Compression = gzip -->
WP Super Cache 基本使用
WP Super Cache 安装非常简单,只需要上传到插件目录,然后激活之后就可以到 后台 > 设置 > WP Super Cache 进行详细配置。下面我讲讲 WP Super Cache 的基本设置:
通用设置
首先到通用 tab 下,打开缓存功能。
高级设置
在高级 tab,首先选择 mod_rewrite 缓存模式,并点击更新,更新之后,插件会让你更新 rewrite 规则到 .htaccess 文件,保证 htaccess 文件可写,把内容更新进去。
杂项基本上将默认推荐的选项勾选上即可,移动设备的支持,就要看你的使用什么主题,如果你使用响应式主题,这里就不要勾选上,如果你对移动设备提供的是另外一套主题,这里需要勾选上。
其他设置
CDN:如果你使用七牛之类的 CDN,可以到这里进行设置。
内容:使用来查看那些页面已经被缓存了,并且可已清理缓存。
预缓存:默认缓存是基于用户访问驱动的,预缓存则使得用户还没访问,可以先生成缓存文件。
插件兼容:是设置 WP Super Cache 和一下常用的插件兼容工作。
调试:面向开发者进行调试的,一般用不到。
WP Super Cache 附加说明
- 登陆了和留言之后是看不到静态缓存页面的,看到的效果和原来的 WP-Cache 插件一样的,一般来说留言的同学不是那么多。
- 这个插件通过 Mod Rewrite 来是实现访问静态缓存页面,所以首先主机要支持 Mod Rewrite,然后还要开启 WordPress 的固定链接功能。
- 一些动态的时时更新的插件,如 Recent Comments,Recent Posts 等可能会不及时更新,一个很好的解决方法是通过 Javascript 来实现。所以同理 Sidebar 更新也只能在静态页面刷新的时候更新。
- 不要使用性能很差的主机,尽管缓存了,但是还是不行的,如果你网站流量特别大,建议你使用 Media Temple 这类性能强劲的主机。