Loading...

新的wordpress缓存思想

类归于: Wordpress, 网站技术 — 江东 @ 2009-04-04 22:17:05 才(14)条评论

以前的一篇日志中,cosbeta认为,凡是插件级(cos-html-cache除外)的缓存都不会有多大的效果,毕竟他们都无法绕过wordpress的预处理。不相信的话,可以做一个实验,在一个页面已经缓存的情况下,修改wp-config.php文件,故意将数据路的信息修改成错误的信息,然后刷新缓存的页面,若该页面依然正常,那么此缓存则效率很高,否则,缓存效果并不明显。

所以,今天晚上cosbeta想到一种新的思路,那就是对wordpress做外部缓存。

配合cos-html-cache使用,此外部缓存仅仅缓存非post页面,缓存的方式如下(仅仅针对非single post页面):

  1. 检查页面html中是否有cos-html-cache的缓存flag”<!–cos-html-cache-safe-tag—>”,有则将缓冲区文件写入缓存,否则利用cos-html-cache缓存;
  2. 访问wordpress的时候,检查缓存是否存在或者过期(不会通过插件机制检查,因此若缓存被引用,即使数据库关闭,页面依然正常),若过期则写入新的缓存,否则,直接调用缓存文件;

这样便可实现wordpress的全站缓存,这样的缓存有什么作用,下面我做一个计算:

假设blog的访问量是1w+,非静态化文件访问是1000;

未缓存:按照wordpress的数据库使用情况看来,一天数据库查询绝不少于30000次;

使用缓存:(假设缓存时间为5分钟):一天数据库查询的次数则为 24*60/5 = 288次;

由于single post依然采用cos-html-cache,因此对于评论之类的实时显示毫无影响。

今晚找可能吧和我自己的blog做小白鼠,测试一下。

本站html之外的文件也都缓存,欢迎大家查看(不是.html结尾的页面)源代码,代码最后一行会显示缓存生成的时间。

补充说明:这个插件其实没有那么高深,要不是CPH出错报告关闭了的话,10分钟便可搞定(多亏PEAR)。关键是测试,看看有没有想想不周到的地方。

cosbeta的图片host在哪里的?

类归于: Wordpress, 网站技术 — 江东 @ 2009-03-29 23:06:17 才(31)条评论

这几天一直很矛盾:要不要做一个host图片的服务?原因很多:1.哪里能找到海量的服务器(别相信那些不限c磁盘和流量的虚拟主机);2.即使采用自己的购买的虚拟主机做了这个服务,流量依然来自购买的虚拟主机,无法节约带宽(过段时间研究一下amazon s3 和ec2,看利用他们的服务器是不是要带宽要便宜一点);3.有现成的live和google picasa图片存储(他们都支持外链)我做这个还能有多大意义;4.我做的host图片服务也未必能保证不会撞墙。

今天和一个朋友聊天,这位写了多年blog的朋友还不知道picasa是google的服务,所以我觉得有必要介绍一些比较靠谱的图片存储服务,他们是livespace,google picasa和flickr。为什么不考虑国内的服务呢?、他们速度快,使用方便,又不会被和谐?但是他们改变策略和随时停止服务的几率会比国外同样服务的站点撞墙的几率要大,特别是google的服务一般只是定点撞墙(万一撞墙了,cosbeta也有解决办法让你host在国外的wordpress正常显示图片)。

cosbeta所用的图片服务:

  1. FlickrYahoo旗下的站点,稳定性不错,虽然曾经一度因为敏感图片被和谐过,但是现在已经解放了么,比较靠谱,cosbeta在2007年的时候用过它抛弃过它,但是现在觉得还是可以继续使用,因为正如那篇日志下的某个评论说的那样:俺对广大人民群众有信心…还是先留着吧
  2. google picasa.cosbeta 99%的图片都host在这个服务上面,一年建立一个文件夹,速度快、上传文件方便,cosbeta主力推荐。
  3. Live space.最近cosbeta图片都存储在这个上面了。不是别的原因,是因为cosbeta采用了livewriter发布blog,livewrite编辑图片的功能很强大,特别是截屏图片。所以对于图片多的日志,cosbeta一般先发布在live space上,然后直接copy过来再次发布在本blog上,具体方法参见此日志

基本上,cosbeta相关blog的图片处理就是这样的,不知本blog的访客们,你们都是如何host博客图片的呢?

cos-html-cache升级到2.7.3

类归于: Wordpress, 网站技术 — 江东 @ 2009-03-24 13:43:36 才(99)条评论

上一次的升级解决了两个问题:留言框中会自动记录创建静态的访客信息(这样会将访客不愿意公开的信息如email地址公开给每一个访问缓存页面的访客,具体问题描述如下引用部分)和加密日志的问题。

当博主注销登陆之后,再次查看post页面,页面上的留言框里面居然还保留着最后一个创建缓存的访问者的信息。当然,这个问题在cosbeta自己的 blog不存在,因为cosbeta自己改动了一下留言框,不用php的方式读取留言者的cookie信息,所以缓存的内容中就没有任何记录留言者的 html代码存在了。

上次用js重置评论发表表单的方法解决了第一个问题,然而由于源代码中依然有记录信息,所以一旦用户浏览器无法执行js重置部分,那么访客依然可以看到上一次创建静态页面的访客信息(描述起来咋这么拗口!)。

不管怎样,意思就是cache记录了本不应该记录的东西,上一次的改版用js脚本重置了,而本次的改版是直接在源代码中抹掉这个不该记录的信息,这样就彻底解决了这个问题。

鸣谢(排名不分先后):

  1. 可能吧提出问题和坚持在他龟速的网络下为我刷新测试;
  2. 堂全程提供正则表达式技术支持(不会正则表达式居然还敢说自己会php?汗!);

下载地址:cos-html-cache 2.7.3

cos-html-cache升级到2.7.2

类归于: Wordpress, 网站技术 — 江东 @ 2009-03-15 20:21:53 才(15)条评论

今天可能吧的吧主发现了cos-html-cache的一个小毛病,那就是当博主注销登陆之后,再次查看post页面,页面上的留言框里面居然还保留着最后一个创建缓存的访问者的信息。当然,这个问题在cosbeta自己的blog不存在,因为cosbeta自己改动了一下留言框,不用php的方式读取留言者的cookie信息,所以缓存的内容中就没有任何记录留言者的html代码存在了。

修改的方式比较简单,要么和cosbeta一样,手动修改comment.php文件,让文本域中的value始终为空(cosbeta建议你无论什么情况下,这个操作都做一下)。要么就更新cos-html-cache,增加一个js设置cookie的的动作:没有任何cookie存在的时候,把留言框的value全部清空。所以cosbeta今天就更新了cos-html-cache中相关的js文件。

另外以前很多朋友如tsian Purose 在我这里这里留言 说:“是个好插件,但是我一直在考虑是否该用,因为我的日志有加密日志,如果启用的话,加密日志就有问题了,当正确输入密码后,日志打开,可是,当下次访问的时候,如果别人不知道密码,还是照样把我的加密日志打开了。怕!怕~!”.cosbeta当时只能建议他们暂时不要用这个插件了,而且当时cosbeta认为,加密日志是作者自己看的,而对于处于登录状态下的作者,cos-html-cache是不会为其创建cache的,所以,影响不大。然而考虑到作者也可能在不登录的情况下输入密码查看文章,再加上有些文章出于和谐的考虑需要对狗腿子保密,所以认为影响不大的那种认识是不正确的。既然今天对cos-html-cache动刀了,索性就把这个一起修改了吧。

当前版本的cos-html-cache已经不会缓存加密日志了,所以请放心大胆的使用吧!

有bug,欢迎报来,本blog的任何地方留言皆可!

最新版本的cos-html-cache下载地址:cos-html-cache

1070

类归于: Wordpress, 网站技术 — 江东 @ 2009-03-08 00:04:12 才(8)条评论

生活点滴

image

博客地图(荒凉在那里了)

image

关于cos-html-cache和godaddy主机的问题

类归于: Wordpress, 网站技术 — 江东 @ 2009-03-04 17:40:02 才(6)条评论

godaddy主机的$_SERVER变量有些古怪,所以cos-html-cache可能会将目录搞错,现在判断html的目录方式在其他主机没有问题,而当前就目录的判断方式就是为了防止二级目录出错而设计的,因此不打算专门为godaddy做修改,因此这里特此给出godaddy的解决方案:

修改方法是:修改cos-html-cache.php文件 将$path = $_SERVER['DOCUMENT_ROOT'].”/”;替换为$path = ABSPATH ;

如果目录依然错乱,继续修改 $path = ABSPATH.”/youblogdir”,直到正常为止。

上面是针对goaddy,cos-html-cache的一个解决方案。

对blog稍微做了些修改

类归于: Wordpress, 网站技术 — 江东 @ 2009-03-01 13:49:33 才(14)条评论

冰仔老弟发现了一个有趣的现象image ,为了这个现象不再出现,我再次对ajax thread comment做了修改,增加了判断条件,从此杜绝了这个现象的发生,好玩。

另外,cosbeta现在发表日志不再一一的上传图片到google picasa了。有了live writer,cosbeta可以先将此日志发布在live space上面,然后再拷贝内容再次发布在主blog上,这样就可以直接利用live space的图片外链接了。这种方式不错吧?很节约时间的。

live writer对图片的编辑很强,可以只设置很多效果,如倒影

image 圆角 image相纸 image

多么的2.0啊,还可以对图片进行部分剪裁,相当的方便。

cos-html-cache静态化wordpress2.7分页链接的显示

类归于: Wordpress, 网站技术 — 江东 @ 2009-01-12 20:17:14 才(9)条评论

今天有网友提到了这个问题,在wordpress2.7中,评论可以分页显示了,而分页显示的链接暂无法自定义设定,所以即使使用了仿真的.html永久链接格式(顺带提一下,wp2.7的官方中文包中是不是不应该把permalink翻译成固定链接?),留言的链接依然是形如.html/comment-page-1#comment-2102的格式,它并不是一个真正的链接,所以这样打开的时候就会显示页面不存在。

由于多数人不需要分页显示评论,而同时又想.html/comment-page-1#comment-2102链接正常,所以不如干脆用.htaccess将.html/comment-page-1#重定向到.html,所以cosbeta在这里吧这个htaccess分享给需要的朋友:

RedirectMatch 301 (.*)\.html/comment-  http://www.storyday.com$1.html

请将storyday替换成您自己的域名!