教学之友,学习之友。

站长教学网

squid如何设置页面缓存时间

时间:2012-12-27 23:00来源:未知 作者:ken 点击:

 首先搞清楚2个东西:

1、Last-Modified:这个是网页最后修改的时间。可在head中设置。squid在将页面缓存时,如果没有设置该属性,squid会自动将Last-Modified设置为访问时间。

2、Expires:网页过期的时间。如果网页过期,squid会去访问webserver重新读取页面。

那么,对于动态页面,需要在页面中加上如下代码(php):
//设置最后修改时间为当前时间
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
//设置过期时间为1天(按秒计算)
header("Expires: " .gmdate ("D, d M Y H:i:s", time() + 3600 * 24). " GMT");

且以上内容要放在PHP文件的最前面。

对于一些无法或不便于设置Last-Modified和Expires的文件如图片或者是论坛,我们可以在squid.conf中设置refresh_pattern来控制缓存时间:

refresh_pattern 的语法是

refresh_pattern [-i] regexp min percent max [options]

regexp 是文件类型。教学网 eduyo.com
min, max的单位是分钟,percent就是百分比。

refresh_pattern 的算法如下:
1) If (当前时间-最后修改时间) < min),cache是新鲜的
2) else if (当前时间-最后修改时间) < (min + (max-min)*percent),cache是新鲜的
3) else cache是过期的
cache过期就需要从后面server取新鲜内容。

如:设置htm文件过期时间为10分钟
refresh_pattern .htm 0 25% 8
至于参数,请大家自行研究

以上设置在centos6 + squid + nginx环境中测试成功。

(责任编辑:ken)
TAG标签: 缓存 squid
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
注册登录:不允许匿名留言,登录后留言无需输入验证码。
栏目列表
最新内容