给 WordPress 加上缓存插件以免空间被暂停终止服务

大家还记得前几天我写的一篇 最近被服务商警告了!的文章吗? 没错,就是那个 HostGator 让我用缓存插件的那篇文章。由于 BO-BLOG 没有缓存插件,所以造成数据库读取频繁以及CPU被严重占用。我的博客以每天 5000IP 流量的速度把 HostGator 这头鳄鱼给击败了。然后。。。鳄鱼的大佬就过来跟我说,你空间被搁置了。必须要我启用缓存插件。还让我联系我使用程序的作者。我郁闷。无奈,我只好换 WP 啦。还好,WordPress 的插件库不是盖的,还真有这么几个插件。 那就是 Cos-html-cache、Super Cache 与 Hyper Cache。当你的Wordpress博客流量过高,请务必考虑安装缓存插件。

一、为什么要使用缓存插件?
Wordpress是最受欢迎的独立博客系统,这点是毋容置疑的。但当一个博客数据请求量高于空间的限制时,你就需要一个缓存插件来减少 对数据库的查询。

二、常用缓存插件介绍
顺便说一下,此篇文章转自可能吧的一篇名叫 WordPress 缓存插件介绍的文章,原来可能吧也有过类似的问题,看完他的文章,我决定用 Cos-html-cache 这个插件。

1、Cos-html-cache

这是首推的缓存插件,由江东开发。根据目前的观察,这个插件能极其有效地节省数据库 查询量,做到完完全全的静态化。
然而,有得必失,你的文章URL必须伪静态为html或htm结尾,因为cos-html-cache确实生成了静态html文 件。

具体使用方法:(注意顺序,请一定要改完绝对路径后再激活插件)
(1)下载cos-html-cache插件,上传到plugins目录。
(2)在根目录下建立index.bak文件夹,权限为0666.
(3)在Wordpress的设置后台里将永久链接改成“/post/%postname%.html”或”/article /%post_id%.html”或其它。
(4)启用cos-html-cache插件。

优势:
(1)所有文章和首页都被绝对静态化了,只有当文章被修改(文章内容修改、删除、留言)缓存才被重新生成,很大程度上减少了数据库的负担。
(2)支持Cookie验证(WP不是默认支持么?后面你会知道为什么我特意提到这一点)

劣势:
(1)博客文章永久链接必须是伪静态的。如果你博客之前的URL不是以.html或.htm结尾的,除非你用重 定向,否则你将无法使用cos-html-cache。对于一个已经有比较长历史的博客,改动URL不是一件容易的事。
(2)不即时刷新。出发缓存重新建立的动作只是文章修改或主题变动,插件的动作不会导致缓存被重新生成。

2、Super Cache
可能吧之前使用的就是super cache,直到下午负荷过重。

要使用这个插件,需要修改wp-config.php和.htaccess文件。具体可以参考官方说明。

优势:
(1)无需修改博客永久链接。
(2)支持Cookie验证
(3)支持Gzip(即便Wordpress在wp2.5就取消了gzip选项)

劣势:
(1)依然需要查询数据库。相对cos-html-cache来说,super cache依旧需要对数据库进行查询。
(2)Gzip有时出错

3、Hyper Cache
这是我使用了2小时然后放弃的一个缓存插件。它的思想和Cos-html-cache是一样的,但是考虑到永久链接的问题,它并没有完全绕过 wordpress实现静态化。相比之下,我认为它比Super Cache更为优秀, 安装要求没有Super cache那么苛刻,而且对Gzip的支持似乎更好一些。如果你不想将永久链接更改为.html结尾,可以考虑Hyper Cache。但是,Hyper Cache有个不好的地方,将在第三点讨论。

三、常见问题
所谓的常见问题,其实是我遇到的两个可能比较普遍的问题而已。

1、 Cos-html-cache记录的昵称空格变加号
打开插件文件夹里的common.js.php, 将第34行替换为:

setovalue(‘author’,readCosBetaCookie(author_cookie).replace(‘+’,’ ‘ ) );

2、 Hyper Cache无法实现cookie验证
之前我试用了Hyper Cache,发现访客的cookie不会被记录,每次留言都要重新输入昵称等相关信息。这是缓存造成的。解决方法是用js来实现 cookie的验证,具体方法请移步WordPress 完全静态化后的 cookie 验证。

四、总结
这次博客被挂起到使用3款缓存插件的经过,我得到了下面的结论:

1、博客被挂起不一定因为和谐,但因为和谐博客必定会被挂起
2、Wordpress一定要使用缓存插件
3、缓存插件首选cos-html-cache,然后是Hyper Cache

相关评论

  1. 求索阁说道:

    博主,我现在的WP的CMS博客日IP才500个,主机商就表示服务器很有压力,你的排名在2万之内,流量应该是我的至少几十倍,你是怎么全面做到降低服务器负荷的啊?就安装这样一个缓存插件就行吗?另外,你用的是什么空间呀?

    • FORECE说道:

      @ 求索阁 我用的是虚拟空间+独立IP。没有用VPS。一开始我用的是 BO-BLOG。后来服务商要求我使用缓存插件,由于BO-BLOG 没有,所以我转到 WP 了,cos-html-cache 这个插件不是很好,BUG 太多,现在我用的是 SUPER CACHE。缓存就是把动态页面转换为静态的,这样会减少对数据库查询的次数,会大大降低空间对 CPU 的需求。所以安一个缓存插件还是很有必要的。

      • 求索阁说道:

        @FORECE 感谢博主说的这么详细,我现在也是虚拟空间,只是没有独立IP。装了个w3 tatal cache缓存插件,该插件不像你说的那个一样,该插件在后台文件夹里没有产生每个页面的缓存文件,还不知道w3 tatal cache的缓存原理。不知道怎么测试装没装缓存插件,有多大的区别?

        • FORECE说道:

          @求索阁 W3 TATAL CACHE 只适用于VPS,对虚拟空间无效。所以并不会产生缓存文件,你在它页脚生成的报告文件中会查看到。哈哈,我也试用过这个插件。。。放弃吧。

        • 申佳明说道:

          @求索阁 除了缓存插件wp super cache or hyper cache以外,你还可以装个优化MYSQL缓存的插件,db cache.这个插件很8错。即使不装上述的几个缓存插件之一,单独安装DB CACHE,也对MYSQL链接有很好的优化。
          一般我们都是 缓存插件+DB缓存插件这样用的~~所谓神雕侠侣,不过如此了

  2. yesure说道:

    5000IP梦想哦

    缓存插件用了,不过GZIP怎也实现不了!
    不知道是不是空间或问题,试过好多方法了都不行

    博主看一下我的博客速度如何?

  3. 安庆法律人说道:

    5000?已经很多了,什么时候我也有那一天。但是,一个服务器5000IP都受不住,太垃圾了吧

  4. SUE说道:

    我用COS HTML无法记录cookie(只是访客,admin的cookie可以记录),能麻烦你看看吗?

  5. 海天无影说道:

    不即时刷新。出发缓存重新建立的动作只是文章修改或主题变动,插件的动作不会导致缓存被重新生成。
    指的是类似随机文章 此类插件?

    • FORECE说道:

      嗯呢,连模板修改都不会生成缓存。需要在后台删除所有缓存,让缓存重新生成才可以。

  6. devil说道:

    期待我的博客有这么多流量呢 呵呵

    学习了

  7. 秋天一棵树说道:

    纠正一个笔误:

    后台回复好像就是没有邮件通知。

  8. 秋天一棵树说道:

    后台回复好像就是没有评论回复,还是到文章页面回复效果好一点。
    我现在还没有用缓存插件,一开始用过但后来导致了一些问题,看来还需要再研究一下。

  9. 雨云说道:

    5000IP ? 哇,这真有点吓人

  10. kwx说道:

    友情连接里没我博客?

  11. 左岸读书说道:

    从一开始就要准备!

    • FORECE说道:

      是啊,不然到后来地址又要变。我这几天地址来回变,不知道GOOGLE和百度大叔会不会生气。

  12. ystar说道:

    我已经换成从bo-blog换WP,重新开始了,我用的是Super Cache插件,习惯用这个了。

  13. liuzm说道:

    呵呵,第一次来,支持下

  14. 笔头说道:

    功能强大的WP。

    问什么你回复了我的评论我收不到邮件?

FORECE进行回复 取消回复

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

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据