成长值: 258 签到天数: 4711 天 [LV.Master]伴坛终老
|
发表于 2015/12/19 01:18
|
显示全部楼层
|阅读模式
|Google Chrome 47.0.2526.73 |Windows 10
cache过期就需要从后面server取新鲜内容。
如果希望页面一进入cache就不删除,直到被主动purge掉为止,可以加上ignore-reload选项
格式:refresh_pattern -i 正则表达式 最少缓存分钟数 缓冲比例 最大焕发分钟 一系列参数
例如
refresh_pattern -i \.jpg$ 525600 95% 525600 ignore-reload
强制jpg内容至少缓存一年,最大缓存一年且不管用户是否发送no-cahce等请求
但使用 reload-into-ims,当有no-cache的请求发过来时,他会发一个http头部回去问源服务器(上层服务器),是否有修改,如果修改就更新,如果没有就返回给客户.
refresh_pattern 参数是大小写敏感的正则表达式。你可以使用-i选项来使它们大小写不敏感。
reload-into-ims
这个参数不是refresh_pattern中的参数,他是一个单独的参数.
在flashget和迅雷之类的软件,下载时发送http header时会包含下列信息:
Cache-Control:no-cache
Pragma:no-cache
这样的话squid主机接受这http header以后会让squid服务器直接连接web server取新的数据。这样对服务器很大的压力,
reload-into-ims参数的意思是将client请求的no-cache或reload请求转变成If-Modified-Since,而If-Modified-Since这个参数是用于判断文件是否被modified,这时squid和RS之间的数据传输仅仅只是验证文件是否更新或更改,如果RS返回的是文件未被更改,则直接由squid的cache文件返回给client,如果更改了,再到后端RS获取最新的文件并被squid缓存,这样做可以节省带宽,增加访问速度。
这个参数违反 HTTP 协议,但是对大部分网站来说是可以设置为 on 的,只要后端服务器对If-Modified-Since 头的判断正确即可。
大概意思是:只在源服务器上文件变动的情况下才实际更新cache当中的内容。
|
|