Chinaunix首页 | 论坛 | 博客
  • 博客访问: 17952467
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类: BSD

2008-10-31 15:56:00

的作用:BSD爱好者乐园HG&M7`y8||rg
用于确定一个页面进入cache后,它在cache中停留的时间。refresh_pattern规则仅仅应用到没有明确过时期限的BSD爱好者乐园d1rC~m}Pf
BSD爱好者乐园*``4z rJ,K
响应。原始能使用Expires头部,或者Cache-Control:max-age指令来指定过时期限。BSD爱好者乐园X5a(x ~*Gp'I-S(T

u0xl2xO&^G语法:BSD爱好者乐园$EZ y_,q Y
refresh_pattern [-i] regexp min percent max [options]
d-~j)~0L5?
_Ij X4P CN Nhmin参数是分钟数量。它是过时响应的最低时间限制。如果某个响应驻留在cache里的时间没有超过这个最低限制,BSD爱好者乐园J Z1f'pB e(v5\"[
BSD爱好者乐园 s"H1Of9N
那么它不会过期。类似的,max参数是存活响应的最高时间限制。如果某个响应驻留在cache里的时间高于这个最高
t c%v;P3{&n#s\dcBSD爱好者乐园 ?Gh9H0wqQ
限制,那么它必须被刷新。
8CLWn[;iBSD爱好者乐园]0V+t'v4[ t
在最低和最高时间限制之间的响应,会面对的最后修改系数LM-factor算法LM-factor=(response age)/BSD爱好者乐园x}!d(to ~ o5S#x#U$}
BSD爱好者乐园!\;M1aH@$]+p LU-OW
(resource age)。对这样的响应,squid计算响应的年龄和最后修改系数,然后将它作为百分比值进行比较。响应
2q1r/KN6Q4OBSD爱好者乐园/HD!s.uJ N7{)_SG
年龄简单的就是从原始服务器产生,或最后一次验证响应后,经历的时间数量。源年龄在Last-Modified和Date头
$ij,C aNne?BSD爱好者乐园 Wy"{~5A ^5qR
部之间是不同的。LM-factor是响应年龄与源年龄的比率。BSD爱好者乐园:Ir|O0M|
BSD爱好者乐园x7K6FM/RY#D
常用的几个的意思BSD爱好者乐园C8W+FBl.yBoGv
BSD爱好者乐园s4PN P%f|7M
override-expire
5_V b1^p?/Yc该选项导致squid在检查Expires头部之前,先检查min值。这样,一个非零的min时间让squid返回一个未确认的BSD爱好者乐园J @FSO5r

*DX+]~j|9J%o2lcache命中,即使该响应准备过期。
%W|RjvkBSD爱好者乐园 bN{}KJm
override-lastmod
"CO7Z0Gq*^eN改选项导致squid在检查LM-factor百分比之前先检查min值。BSD爱好者乐园 HJ|[[0F

!Y/V%d\&T^p'Oreload-into-ims
d$d1c9EG?4GR该选项让squid在确认请求里,以no-cache指令传送一个请求。换句话说,squid在转发请求之前,对该请求增加一BSD爱好者乐园ea-sgj1Mu3V
BSD爱好者乐园d#] u-O(arF
个If-Modified- Since头部。注意这点仅仅在目标有Last-Modified时间戳时才能工作。外面进来的请求保留no-BSD爱好者乐园;T gx&I8y5h
BSD爱好者乐园iki4k,`[t
cache指令,以便它到达原始服务器。
jN9Fd9r[$i!F r3x一般情况可以使用 reload-into-ims。它其实是强行控制对象的超时时间,这违反了http协议的精神,但是在带宽BSD爱好者乐园)PG s&d:NUr%U
BSD爱好者乐园\7j1kQ[7f
较窄的场合,可以提高明显系统相应时间。BSD爱好者乐园1|b){h|q2B_3Y
举例:BSD爱好者乐园*@xu\u:b8|f-p-Z
refresh_pattern -i \.css$ 1440 50% 129600 reload-into-ims
3m @{9rq D1q irefresh_pattern -i \.xml$ 1440 50% 129600 reload-into-ims
:m*R!jb-~^5N~refresh_pattern -i \.html$ 1440 90% 129600 reload-into-ims-
4e y Q8P/DKrefresh_pattern -i \.shtml$ 1440 90% 129600 reload-into-imsBSD爱好者乐园#e'n;GDFM&KF
refresh_pattern -i \.hml$ 1440 90% 129600 reload-into-imsBSD爱好者乐园H"]/qI&u#Q*k7[4O#A
refresh_pattern -i \.jpg$ 1440 90% 129600 reload-into-imsBSD爱好者乐园 gb d#{,N4sR
refresh_pattern -i \.png$ 1440 90% 129600 reload-into-imsBSD爱好者乐园Rt(Trs6fR9ITB
refresh_pattern -i \.gif$ 1440 90% 129600 ignore-reload
$Q6W.m/K*PqW2qOlcrefresh_pattern -i \.bmp$ 1440 90% 129600 reload-into-ims
6P4A6JRE(@]erefresh_pattern -i \.js$ 1440 90% 129600 reload-into-ims
W&]#dp7Tv+LBSD爱好者乐园,E y3[7Ghip9b
ignore-reload
t+{#OoE该选项导致squid忽略请求里的任何no-cache指令。BSD爱好者乐园+Sj I(h"R4iFk
所以。如果希望内容一进入cache就不,直到被主动purge掉为止,可以加上ignore-reload选项,这个我们常用
b Q r4S)L]0A0^BSD爱好者乐园4h,P+b;ZI'Z
在mp3,wma,wmv,gif之类。
I:}U5IW&Pw g wR;^Examples:BSD爱好者乐园 n ei7K"_0J2m

aYg bfrefresh_pattern -i \.mp3$ 1440 50% 2880 ignore-reloadBSD爱好者乐园 o3f*Oq(DwQr
refresh_pattern -i \.wmv$ 1440 50% 2880 ignore-reloadBSD爱好者乐园 |0{q/g z"D
refresh_pattern -i \.rm$ 1440 50% 2880 ignore-reloadBSD爱好者乐园/PO%Cr'P6a-Sa$l
refresh_pattern -i \.swf$ 1440 50% 2880 ignore-reload
pL!Tut4I frefresh_pattern -i \.mpeg$ 1440 50% 2880 ignore-reload
*A(N t ?R!W8Nmrrefresh_pattern -i \.wma$ 1440 50% 2880 ignore-reload
+aA0GL;?qJresource age =对象进入cache的时间-对象的last_modified
p"Y0F0F-X0cx4{response age =当前时间-对象进入cache的时间
`W{"_^&qgLM-factor=(response age)/(resource age)
-iiH+{#~
7m$l S1dQ举个例子,这里只考虑percent, 不考虑min 和maxBSD爱好者乐园HvV?[ fRlP

'~y@ k6I'OW例如:refresh_pattern 20%BSD爱好者乐园3SA@{z$|;mu5U

1SN d)WS假设源服务器上-----lastmodified 是 2007-04-10 02:00:00BSD爱好者乐园SM5Z3w)mm$u
squid上 proxy.aaa.com/index.htm index.htm进入cache的时间 2007-04-10 03:00:00BSD爱好者乐园 n4aTh7Ir,D(y_e"lQ

I Z"@i.``w$e7Zb H1)如果当前时间 2007-04-10 03:00:00
#\ o*P$Qq,s&I*Zresource age =3点-2点=60分钟
1o"~'q)G&k%uMresponse age =0分钟BSD爱好者乐园 lz%LL7j#T&n+M#xu
index.htm还可以在cache停留的时间(resource age)*20%=12分钟
tW9J5{:t WL也就是说,index.htm进入cache后,可以停留12分钟,才被重新确认。BSD爱好者乐园(@'qf f5Fh+~@ W u~'~'i
BSD爱好者乐园[ B1yJ}u:FPw_'}
2)如果当前时间 2007-04-10 03:05:00
*R/uS-MRresource age =3点-2点=60分钟BSD爱好者乐园!AB.f!o:X\
response age =5分钟BSD爱好者乐园-IjR#mVsF Rc
index.htm还可以在cache停留的时间(resource age)*20%=12分钟-5=7
%P z/}d/i!b&qLM-factor=5/60=8.3%<20%BSD爱好者乐园(X:|N&z:^
BSD爱好者乐园)TzF,}~rx t
一直到2007-04-10 03:12:00 LM-factor=12/60=20% 之后,cache中的页面index.htm终于stale。
GN Qv:\]如果这时没有index.htm的请求,index.htm会一直在缓存中,如果有index.htm请求,squid收到该请求后,由于已
w&A+n C@t_
,U[f/c\M^Y'p"S经过期, squid会向源服务器发一个index.htm是否有改变的请求,源服务器收到后,如果index.htm没有更新,
)Z K2@ L.Z9f:W)`
@9IC%l3k)of$_Jsquid就不用更新缓存,直接把缓存的内容放回给客户端,同时,重置对象进入cache的时间为与源服务器确认的时
~^iG1Q[%G8LBSD爱好者乐园h%\}z0^^2H8Z-Hp
间,比如2007-04-10 03:13:00,如果正好在这个后重新确认了页面。重置后,resource age变长,相应在cache中BSD爱好者乐园3s^!b6Y3l-DwK9]Z7E
BSD爱好者乐园D UM:B5I"`{
存活的时间也变长。
p2hW V!e3J1r_ Y C
tsKn5~'b如果有改变则把最新的index.htm返回给squid,squid收到会更新缓存,然后把新的index.htm返回给客户端,同时根BSD爱好者乐园u:|Cb'G!T

fm;@t9K\xTm据新页面中的Last_Modified和取页面的时间,重新计算resource age,进一步计算出存活时间。BSD爱好者乐园cEps/Zb
BSD爱好者乐园}0O8cgu O
实际上,一个页面进入cache后,他的存活时间就确定了,即 (resource age) * 百分比,一直到被重新确认。
阅读(871) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~