小樱 发表于 2015/12/19 01:18

squid强制缓存篇 ignore-reload参数,忽略用户是否发送no-cahce等请求

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当中的内容。

页: [1]
查看完整版本: squid强制缓存篇 ignore-reload参数,忽略用户是否发送no-cahce等请求