refresh_pattern

    TAG: refresh_pattern

    Этот тэг позволяет настраивать дополнительные параметры оптимизации кэширования. Эти настройки помогают Squid определить, брать объект для пользователя из кэша, или этот объект уже устарел в кэше, и нужно скачать этот объект у первоисточника заново.

    Использование:

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

    По умолчанию, регулярные выражения РЕГИСТРОЗАВИСИМЫ. Для того, чтобы сделать их регистроНЕзависимыми используйте опцию -i.

    Min

    минимальное время(в минутах) для объектов, которым оно не задано явно, в течение которого они(объекты) считаются "свежими". Рекомендуемое значение 0. Увеличение этого значения может стать причиной некоторых ошибок в приложениях идущих через Squid в Интернет. Например, при обращении к некоторому объекту он может быть выдан из кэша, в то время как программе нужен "свежий", актуальный в это конкретное время объект. В этой связи, для обработки некоторых данных, в приложение может поступить устаревшая информация, что повлечет за собой ошибочность конечного результата.

    Percent

    процент от возраста объекта(время прошедшее с момента последнего изменения). В течение полученного времени объект считается "свежим".

    Max

    максимальное время(в минутах) для объектов, которым оно не задано явно, в течение которого они(объекты) считаются "свежими".

    =======Опции========

    override-expire

    использовать установленное минимальное время "свежести" объектов, если сервер отправляет заголовок Expires. Т.е. что объект устарел. Использование этой опции НАРУШАЕТ стандарт HTTP. Включая эту опцию, вы принимаете на себя ответственность за возможные проблемы.

    override-lastmod

    использовать установленное минимальное время "свежести" объектов, которые были изменены недавно.

    reload-into-ims

    изменяет клиентские запросы 'no-cache' или 'reload' на 'If-Modified-Since'. Использование этой опции НАРУШАЕТ стандарт HTTP. Включая эту опцию, вы принимаете на себя ответственность за возможные проблемы.

    ignore-reload

    игнорирование клиентских заголовков 'no-cache' или 'reload'. Использование этой опции НАРУШАЕТ стандарт HTTP. Включая эту опцию, вы принимаете на себя ответственность за возможные проблемы.

    ignore-no-cache

    игнорировать заголовки 'Pragma: no-cache' и 'Cache-control: no-cache' принятые от сервера. HTTP RFC никогда не разрешало использовать Pragma заголовки серверами. Это разрешается только клиентам, но сервера все равно отсылают эти заголовки.

    ignore-private

    игнорировать заголовки 'Cache-control: private' принятые от сервера. Использование этой опции НАРУШАЕТ стандарт HTTP. Включая эту опцию, вы принимаете на себя ответственность за возможные проблемы.

    ignore-auth

    кэшировать ответы на запросы авторизации, если внешний(оригинальный) сервер отправил заголовок 'Cache-control: public' в ответе. Использование этой опции НАРУШАЕТ стандарт HTTP. Включая эту опцию, вы принимаете на себя ответственность за возможные проблемы.

    Механизм действия:

    FRESH if expires < now, else STALE
    STALE if age > max
    FRESH if lm-factor < percent, else STALE
    FRESH if age < min
    else STALE

    Примечание :
    А теперь механизм по-русски:
    СВЕЖИЙ если время_когда_истекает_свежесть < текущее время(время сейчас),
    иначе УСТАРЕЛ
    УСТАРЕЛ если возраст > максимальный_возраст(Max)
    СВЕЖИЙ если возраст_с_последнего_изменения <
    процент_от_максимального_возраста_объекта, иначе УСТАРЕЛ
    СВЕЖИЙ если возраст < минимальный_возраст(Min)
    иначе УСТАРЕЛ

    Тэги refresh_pattern проходятся по порядку сверху вниз. Первое совпадение и будет использоватся. Если совпадений не найдено, то будут использоватся настройки по умолчанию.

    Рекомендуемые настройки:

    refresh_pattern ^ftp: 1440 20% 10080
    refresh_pattern ^gopher: 1440 0% 1440
    refresh_pattern . 0 20% 4320