Typecho缓冲优化

作者 by Doubt-Fact /

参考

https://blog.owoii.com/14.html

实测

使用ab测试大概能快三倍

注: ab是apache自带的,非apache安装方法:

yum -y install httpd-tools

原理

没有设置缓存时,每次访问网页服务器都要重新组装网页,而设置缓存后服务器只需要组装一次网页,以后的访问直接输出缓存的文件就好。

省去了服务器组装网页的时间,能在一定程度上提高用户打开网页的速度,节省服务器资源占用,提高并发应对能力。

/path目录创建一个缓存

$path = $_SERVER["REQUEST_URI"];
$tmp_file = "/tmp/".md5($path).".html";

 /** 使用md5(32位小写)对文件的“REQUEST_URI”进行转换,如本文的“REQUEST_URI”为“/index.php/archives/80/”,转换后就变为了“d012b797aa31e4b15e1f1b8e052f70ab” **/
 /** 这里判断有无缓存 **/

在打开时判断有无缓存,如果有缓存则直接输出缓存的html文件,如果无缓存则创建一个

常规问题

1.无缓存清理机制,已发布文章修改困难

安全问题

1.第一个人的页面会被保存,这样,后来访问的人访问的实际上是第一个人所看到页面的“镜像”,第一个人在该页面的登录状态会被复制,甚至,第一个人输入密码查看加密的页面后,后续的访问者可以不用输入密码,直接查看页面

2.如果是管理员(admin账户第一个打开了这个页面),且打开了评论,那么后续使用者只能看到管理员登录的状态且不能退出(无法评论);如果是其他人打开并评论了,那么会在登录框显示该用户输入的信息(包括用户名、邮箱等),造成无法评论,且第一个访问者的隐私容易泄露

问题解决方案

常规问题

设置定时任务

cd /tmp
//跳转到tmp录
rm *.html
//删除该目录下的所有html文件

安全问题

暂无有效解决方案

评论已关闭