当前位置 主页 > 服务器问题 > win服务器问题汇总 >

    对squid中refresh

    栏目:win服务器问题汇总 时间:2019-11-28 12:29

    refresh_pattern的作用:
    用于确定一个页面进入cache后,它在cache中停留的时间。refresh_pattern规则仅仅应用到没有明确过时期限的响应。原始服务器能使用Expires头部,或者Cache-Control:max-age指令来指定过时期限。
    语法:refresh_pattern [-i] regexp min percent max [options]
    min参数是分钟数量。它是过时响应的最低时间限制。如果某个响应驻留在cache里的时间没有超过这个最低限制,那么它不会过期。类似的,max参数是存活响应的最高时间限制。如果某个响应驻留在cache里的时间高于这个最高限制,那么它必须被刷新。
    在最低和最高时间限制之间的响应,会面对squid的最后修改系数LM-factor算法LM-factor=(response age)/(resource age)。对这样的响应,squid计算响应的年龄和最后修改系数,然后将它作为百分比值进行比较。响应年龄简单的就是从原始服务器产生,或最后一次验证响应后,经历的时间数量。源年龄在Last-Modified和Date头部之间是不同的。LM-factor是响应年龄与源年龄的比率。
    常用的几个参数的意思

    override-expire
    该选项导致squid在检查Expires头部之前,先检查min值。这样,一个非零的min时间让squid返回一个未确认的cache命中,即使该响应准备过期。

    override-lastmod
    改选项导致squid在检查LM-factor百分比之前先检查min值。

    reload-into-ims
    该选项让squid在确认请求里,以no-cache指令传送一个请求。换句话说,squid在转发请求之前,对该请求增加一个If-Modified- Since头部。注意这点仅仅在目标有Last-Modified时间戳时才能工作。外面进来的请求保留no-cache指令,以便它到达原始服务器。
    一般情况可以使用 reload-into-ims。它其实是强行控制对象的超时时间,这违反了http协议的精神,但是在带宽较窄的场合,可以提高明显系统相应时间。
    举例:
    refresh_pattern -i \.css$ 1440 50% 129600 reload-into-ims
    refresh_pattern -i \.xml$ 1440 50% 129600 reload-into-ims
    refresh_pattern -i \.html$ 1440 90% 129600 reload-into-ims-
    refresh_pattern -i \.shtml$ 1440 90% 129600 reload-into-ims
    refresh_pattern -i \.hml$ 1440 90% 129600 reload-into-ims
    refresh_pattern -i \.jpg$ 1440 90% 129600 reload-into-ims
    refresh_pattern -i \.png$ 1440 90% 129600 reload-into-ims
    refresh_pattern -i \.gif$ 1440 90% 129600 ignore-reload
    refresh_pattern -i \.bmp$ 1440 90% 129600 reload-into-ims
    refresh_pattern -i \.js$ 1440 90% 129600 reload-into-ims


    ignore-reload
    该选项导致squid忽略请求里的任何no-cache指令。
    所以。如果希望内容一进入cache就不删除,直到被主动purge掉为止,可以加上ignore-reload选项,这个我们常用在mp3,wma,wmv,gif之类。
    Examples:
    refresh_pattern -i \.mp3$ 1440 50% 2880 ignore-reload
    refresh_pattern -i \.wmv$ 1440 50% 2880 ignore-reload
    refresh_pattern -i \.rm$ 1440 50% 2880 ignore-reload
    refresh_pattern -i \.swf$ 1440 50% 2880 ignore-reload
    refresh_pattern -i \.mpeg$ 1440 50% 2880 ignore-reload
    refresh_pattern -i \.wma$ 1440 50% 2880 ignore-reload
    resource age =对象进入cache的时间-对象的last_modified
    response age =当前时间-对象进入cache的时间
    LM-factor=(response age)/(resource age)
    举个例子,这里只考虑percent, 不考虑min 和max
    例如:refresh_pattern 20%
    假设源服务器上www.aaa.com/index.htm -----lastmodified 是 2007-04-10 02:00:00