squid.conf по-русски. Секция HTTP

Перевод подготовила команда проекта http://break-people.ru

Секция: HTTP
----------------------------------------------------------------------------

TAG: request_header_max_size (KB)

Этот тэг определяет максимальный размер HTTP заголовков в запросе. Размер заголовков обычно небольшой(около 512 байтов). Установка ограничения на размер заголовков в запросе может стать причиной некоторых ошибок. Например, связанных с persistent соединениями, переполнением буфера или отказа в обслужвании.

По умолчанию:

request_header_max_size 20 KB

TAG: reply_header_max_size (KB)

Этот тэг определяет максимальный размер HTTP заголовков в ответе. Размер заголовков обычно небольшой(около 512 байтов). Установка ограничения на размер заголовков в ответе может стать причиной некоторых ошибок. Например, связанных с persistent соединениями, переполнением буфера или отказа в обслужвании.

По умолчанию:

reply_header_max_size 20 KB

TAG: request_body_max_size (KB)

Этот тэг определяет максимальный размер тела запроса. Другими словами, максимальный размер PUT/POST запросов. Пользователь, который отправит запрос большего размера, чем указано в этом тэге, получит сообщение об ошибке "Invalid request". Если вы установите этот тэг в значение 0 (по умолчанию), то не будет никакого ограничения на размер тела запроса.

По умолчанию:

request_body_max_size 0 KB

TAG: broken_posts

Этот тэг определяет дописывание дополнительных CRLF после тела PUT/POST запроса. Запросы в которые необходимо дописывание CRLF заносятся в ACL, а затем используются в этом тэге.

Некоторые HTTP серверы имеют неправильную реализацию PUT/POST, и полагаются на дополнительную пару CRLF при принятии PUT/POST запросов от некоторых WWW клиентов.

Цитата из RFC2616 секция 4.1 по этому поводу:

Примечание: некоторые HTTP/1.0 клиенты реализованы с ошибками и добавляют дополнительно CRLF после POST запроса. Чтобы исключить возможные некорректные обработки POST запроса, все клиенты HTTP/1.1 должны добавлять дополнительно CRLF к POST запросу перед отправкой.

Пример:

acl buggy_server url_regex ^http://....
broken_posts allow buggy_server

По умолчанию:

none

TAG: via on|off

Этот тэг разрешает/запрещает добавлять Via заголовок в запросы и ответы, как того требует RFC2616.

По умолчанию:

via on

TAG: cache_vary

Этот тэг разрешает/запрещает кэшировать Vary заголовок. Если 'cache_vary' в значении off, то ответ содержащий Vary заголовок не будет кэширован.

По умолчанию:

cache_vary on

TAG: broken_vary_encoding

Этот тэг определяет запрещение использования ETag. Множество серверов неправильно работает с Content-Encoding "на лету", возвращая некоторый ETag в обоих вариантах - plain и gzip:ed. Использование этого тэга приводит к тому, что от Vary заголовка отделяется заголовок Accept-Encoding и он используется вместо полученного ETag.

Apache mod_gzip и mod_deflate имеют проблемы с обработкой Content-Encoding "на лету", поэтому не будем доверять его ETag.

acl apache rep_header Server ^Apache
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny all
broken_vary_encoding allow apache

TAG: collapsed_forwarding (on|off)

Этот тэг разрешает/запрещает множество запросов к некоторому URI, обработать как один запрос. Обычно запрещено во избежание увеличения задержки обработки динамического контента. Разрешение же несет в себе пользу только при включенном режиме accelerator, где веб-сервер является более надежным и возвращает в основном кэшированную информацию.

По умолчанию:

collapsed_forwarding off

TAG: refresh_stale_hit (time)

Этот тэг определяет время с момента устаревания объекта, втечение которого объект может быть взят из кэша(Cache Hits), пока он(объект) обновляется(заменяется на более новый). Другими словами, если объект ещё полностью не обновился в кэше, но его запросил клиент, то можно этот объект ему выдать из кэша, если прошло не более Х секунд с момента устаревания. По умолчанию, 0 - выключает эту возможность. Эта настройка более интересна только при использовании режима accelerator, при котором некоторые объекты запрашиваются очень часто.

По умолчанию:

refresh_stale_hit 0 seconds

TAG: ie_refresh on|off

Этот тэг включает/выключает поддержку старых версий IE(5.5 и ниже. А в 5.5 SP1 это уже исправлено), которые не умеют работать с прозрачным проксированием. Точнее, проблема связана с невозможностью правильного refresh(Обновления) страницы. Включение поддержки позволяет решить эту проблему лишь частично, направляя все IMS-REFRESH запросы от старых версий IE к оригинальным серверам за свежим контентом. Т.е. частично пролетая кэш Squid. Это сокращает попадания в кэш(в моем опыте на ~10%), но позволяет пользователям иметь свежий контент тогда, когда они этого хотят. Помните, поскольку Squid не может отличить 5.5 от 5.5SP1, то с 5.5SP1 Squid будет дейстовать точно также как и с 5.5 и более старыми версиями. Новые версии IE, к счастью, ведут себя иначе, поэтому Squid может их распознать и действовать более эффективно.

По умолчанию:

ie_refresh off

TAG: vary_ignore_expire on|off

Этот тэг разрешает/запрещает игнорировать объекты без заголовка Cache-control. Многие HTTP сервера поддерживающие Vary выдают объекты, которые тут же(немедленно после отдачи) устаревают, без заголовка cache-control, когда объекта запрашивается клиентом HTTP/1.0. Этот тэг позволяет Squid игнорировать в таких случаях время устаревания объекта.

ПРЕДУПРЕЖДЕНИЕ: Включение этой возможности, может привести к кэшированию тех объектов, для которых это не предназначено.

По умолчанию:

vary_ignore_expire off

TAG: extension_methods

Этот тэг позволяет добавить расширенные методы запросов. Squid понимает только стандартные HTTP методы запросов. Используя этот тэг вы можете добавить до 20 расширенных методов.

По умолчанию:

none

TAG: request_entities

Этот тэг разрешает/запрещает запрашивать объекты через GET и HEAD запросы. Squid по умолчанию блокирует GET и HEAD запросы с запросом объекта, т.к. такие запросы не определены в HTTP стандарте.

Установите этот тэг в значение on если у вас есть клиенты, которым необходимо запрашивать объекты через GET и HEAD запросы. Но будьте осторожны потому, что такие запросы могут привести к ошибкам при обработке запросов, что сделает вас уязвимым к загрязнению кэша.

По умолчанию:

request_entities off

TAG: header_access Как использовать?

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

header_access header_name allow|deny [!]aclname ...

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

Этот тэг является заменой старого тэга 'anonymize_headers' и ещё более старого 'http_anonymizer'. Тэг header_access представляет больше возможностей для конфигурирования. Этот новый подход позволяет создавать ACL для каждого заголовка, позволяя произвести более точные искажения заголовков.

Вы можете указать только известные заголовки в качестве имени заголовка(header_name). Другие заголовки классифицируются как 'Other'. Вы таже можете использовать слово 'All', для того, чтобы применить некоторое действие ко всем заголовкам.

Например, чтобы сделать то, что раньше делала строка 'http_anonymizer standard' вам нужно вставить вот такие строки:

header_access From deny all
header_access Referer deny all
header_access Server deny all
header_access User-Agent deny all
header_access WWW-Authenticate deny all
header_access Link deny all

Или, вместо строки 'http_anonymizer paranoid' теперь нужно ввести:

header_access Allow allow all
header_access Authorization allow all
header_access WWW-Authenticate allow all
header_access Proxy-Authorization allow all
header_access Proxy-Authenticate allow all
header_access Cache-Control allow all
header_access Content-Encoding allow all
header_access Content-Length allow all
header_access Content-Type allow all
header_access Date allow all
header_access Expires allow all
header_access Host allow all
header_access If-Modified-Since allow all
header_access Last-Modified allow all
header_access Location allow all
header_access Pragma allow all
header_access Accept allow all
header_access Accept-Charset allow all
header_access Accept-Encoding allow all
header_access Accept-Language allow all
header_access Content-Language allow all
header_access Mime-Version allow all
header_access Retry-After allow all
header_access Title allow all
header_access Connection allow all
header_access Proxy-Connection allow all
header_access All deny all

По умолчанию разрешены все заголовки.

По умолчанию:

none

TAG: header_replace

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

header_replace header_name message

Пример:

header_replace User-Agent Nutscrape/1.0 (CP/M; 8-bit)

Этот тэг позволяет вам изменять содержимое заголовков запрещенных через тэг header_access. Это происходит заменой содержимого заголовка на некоторую строку. Этот тэг заменяет старый тэг 'fake_user_agent'. Пример это наглядно демонстрирует. Но так можно поступить и с любым другим заголовком.

По умолчанию, заголовки удаляются, если они запрещены через header_access.

По умолчанию:

none

TAG: relaxed_header_parser on|off|warn

Этот тэг разрешает/запрещает преобразовывать некорректно оформленные заголовки http сообщений.

По умолчанию, «on» разрешает Squid принимать некоторые формы http сообщения оформленные не по стандарту, в которых понятно, какому приложению предназначено это сообщение. Затем сообщение преобразуется в корректную форму, после чего проходит через Squid к нужному адресату-приложению.

Если установлено «warn», то при получении неправильно оформленного http сообщения будет делатся запись в cache.log.

Если установлено «off», то неправильно оформленное http сообщение будет отклонено.

По умолчанию:

relaxed_header_parser on



Ссылки:

К содержанию
Squid на практике
Работа с Squid через Webmin
Анализатор логов Squid

© Copyright 2004-2017 - CMS Made Simple
Сайт работает на CMS Made Simple version 1.4.1

© Все печеньки Break-people.ru принадлежат авторам проекта.

Яндекс цитирования Рейтинг@Mail.ru Яндекс.Метрика