Linux - Алексей Стахнов
Шрифт:
Интервал:
Закладка:
2. Дождаться всех ответов, пришедших в течение заданного времени:
• получив первый ответ hit (попадание), получить объект;
• или взять объект от первого родительского кэша, ответившего miss (зависит от настройки);
• или получить объект из Интернета.
Конфигурирование пакета Squid
Основное место конфигурирования пакета Squid – файл /etc/Squid.conf. Размер этого файла достаточно велик, поскольку он содержит множество конфигурируемых параметров, начиная с номера порта для ICP-запроеов и заканчивая правилами доступа к информации. Далее приведены параметры конфигурации Squid-сервера, разбитые на типы. Однако приведенный список не является полным и исчерпывающим, поскольку он содержит только наиболее интересные (с нашей точки зрения) параметры конфигурации.
Сетевые параметры
Сетевые параметры proxy-сервера имеют следующие настройки.
• Порт для запросов клиентов proxy-сервера:
http_port 3128
• Порт для ICP-запросов. В том случае, если не предполагается использовать иерархию proxy-серверов – необходимо указать нулевой порт:
icp_port 3130
• Порт для общения с соседями ICP – через ТСР-протокол:
htcp_port 4827
• К каким multicast-rpynnaM (соседи-серверы squid) подсоединяться для получения ICP, если используется multicast:
mcast_groups 239.128.16.128 224.0.1.20
• По умолчанию режим пассивного FTP включен, но если Squid находится за брандмауэром, то необходимо выключить:
passive_ftp on | off Соседи
Как уже упоминалось ранее, Squid может обмениваться информацией с другими squid-серверами, которых принято называть соседями.
• Каждый сосед описывается отдельной строкой:cache_peer hostname type proxy-port icp-port options
– параметр type имеет следующие значения:
· parent – старший в иерархии;
· Sibling – одного уровня.
– параметр options имеет следующие значения:
· proxy-only – объекты, взятые с указанного узла, не хранить у себя в кэше;
· weight=число – указывает приоритет хоста, чем значение больше, тем больше приоритет;
· ttl=число – время жизни пакета используется при настройке multicast;
· no-query – не посылать ICP-запросы;
· default – самый старший в иерархии;
· round-robin – определяет родительские кэши, используемые по очереди;
· multicast-responder – данный сосед является членом multicast-группы;
· no-digest – не запрашивать от этого соседа cashe digest;
· iogin=user: password – определение имени и пароля для случая, если старший в иерархии proxy-сервер требует аутентификации;
· connect-timeout=число – время ожидания ответа от соседей;
• cache_peer_domain host domain [domain…] – ограничить запросы К данному соседу данным списком доменов;
• icp_query_timeout miiisec – время ожидания ответа в миллисекундах;
• mcast_icp_queгy_timeout miiisec – ожидание ответа на регулярные multicast-опросы;
• dead_peer_timeout seconds – время ожидания ответа от соседа, по истечении которого считается, что сосед отсутствует в сети;
• hierarchy_stopllst – список строк (через пробел), при встрече которых в URL, запрос не будет кэшироваться; по умолчанию cgi-bin;
• no_cache deny имя-acl – определяет список объектов, которые не будут кэшироваться.
Размер кэшаРаздел предназначен для определения параметров кэша – размера, использования, времени хранения информации и т. п.
• cache_mem 8 MB – объем оперативной памяти, используемой для хранения обрабатываемых объектов;
• cache_swap_high 95 – при достижении данного уровня заполнения кэша (в процентах) начинается ускоренный процесс очистки кэша от устаревших объектов;
• cache_swap_iow 90 – процесс удаления старых объектов заканчивается, если достигнут данный уровень (в процентах);
• maximum_object_size 4096 KB – максимальный размер кэшируемого объекта;
• minimum_object_size 0 KB – минимальный размер кэшируемого объекта; файлы меньшего размера не сохраняются;
• ipcache_size 1024 – размер кэша для IP-адресов;
• ipcache_high 95 – верхний уровень заполнения IP-кэша для алгоритма удаления старых объектов;
• ipcache_iow 90 – нижний уровень заполнения IP-кэша для алгоритма удаления старых объектов.
Имена и размеры файловВ этом разделе определяются имена и размеры используемых файлов:
• cache_dir тип Directory-Name Mbytes Level-1 Level2 – определяет имя, размер и количество подкаталогов на первом и втором уровне кэша на диске – каждый кэшируемый объект кладется в отдельный файл, файлы хранятся в двухуровневой иерархии каталогов;
• cache_access_log /usr/local/squid/logs/access.log – место хранения журнала обращений к кэшу;
• cache_log /usr/local/squid/logs/cache. log – место хранения журнала запусков процессов;
• Cache_store_log /usr/local/squid/logs/store.log – место хранения журнала записи объектов в дисковый кэш;
• emulate_httpd_log on | off – производить ли эмуляцию формата журнала HTTPD;
• mime_table /usr/local/squid/etc/mime. conf – таблица ТИПОВ MIME;
• iog_mime_hdrs off – в журнал access записываются полученные HTTP-заголовки;
• useragent_log имя-файла – в этот файл будут записываться строки User-agent из HTTP-заголовков;
• debug_options раздел, уровень – уровень отладки; all – для всех разделов; по умолчанию all, i;
• iog_fqdn off – позволяет определять и записывать в журнал полные доменные имена источника запроса.
Параметры внешних программКак и большинство серьезных программ, Squid позволяет воспользоваться внешними программами для выполнения некоторых действий. К примеру – сбор статистики или обработка трафика.
• ftp_user email-адрес – будет подставляться вместо пароля при анонимном доступе к FTP-серверам; по умолчанию – [email protected], вызывает проблемы с серверами, которые проверяют синтаксис адреса;
• cache_dns_program /usг/local/squid/bin/dnsserver – местоположение программы, кэширующей DNS-запросы;
• dns_children 5 – число процессов, которые делают DNS lookup (получение по IP-адресу доменного имени и наоборот);
• dns_nameservers список-IР-адресов – используется вместо списка DNS-серверов, определенного в /etc/resolv.conf;
• redirect_program none – позволяет подключить программу преобразования URL при каждом запросе;
• redirect_children 5 – параметр определяет, сколько процессов преобразования URL запускать параллельно;
• redirect_rewrites_host_header on – разрешает или запрещает изменение поля Host: в заголовке запроса; по умолчанию Squid переписывает поле Host: в заголовках преобразованных запросов;
• redirector_access aci – какие запросы направлять через редиректор; по умолчанию – все;
• authenticate_program none – позволяет производить аутентификацию клиентов, делающих запросы; программа должна в цикле читать строку "имя пароль" выдавать ок или err; должен быть определен параметр ACL proxy_auth;
• authenticate_children 5 – сколько параллельных процессов будут заниматься аутентификацией;
• authenticate_ttl 3600 – сколько секунд кэшировать результаты работ программы аутентификации;
• authenticate_ip_ttl число – необходимо установить 0, чтобы с нескольких адресов не смогли воспользоваться одним именем.
Тонкая настройка кэшаС помощью следующих параметров можно произвести тонкую настройку параметров кэша:
• wais_reiay_host localhost – куда перенаправлять WAIS-запросы:
• wais_reiay_port 8000 – куда перенаправлять WAIS-запросы;
• request_header_max_size 10 KB – максимальный размер заголовка;
• request_body_max_size 1 MB – максимальный размер объекта;
• refresh_pattern [-i] regex min_age percent max_age[options] – используется для определения, не устарел ли объект в кэше.
Имя объекта сравнивается по очереди с регулярными выражениями в строках refreshjsattern до первого совпадения, параметры из соответствующей строки используются в алгоритме проверки. По умолчанию регулярные выражения различают прописные/строчные буквы, чтобы игнорировать это различие, используется ключ -i. min_age и max_age – время жизни объекта в минутах. По умолчанию:
• refresh_pattern ^ftp: 1440 20 % 10080
• refresh_pattern ^gopher: 1440 0 % 1440
• refresh_pattern. 0 20 % 4320
Более подробную информацию смотрите в документации на Squid;
• reference_age 1 month – максимальное время хранения неиспользуемого объекта до его удаления;
• quick_abort_min 16 КВ – если клиент оборвал запрос, а осталось докапать всего min кв, то Squid произведет докачку объекта;
• quick_abort_max 16 КВ – если клиент оборвал запрос и осталось качать больше max кв, то Squid прекратит получение объекта;
• quick_abort_pct число – если клиент оборвал запрос и уже получено больше чем число процентов объекта, то Squid докачает объект;
• negative_ttl 5 minutes – время кэширования негативных ответов (например "connection refused", "404 not found") – число задает их время жизни в кэше;
• positive_dns_ttl 6 hours – время кэширования положительных DNS-ответов – число задает их время жизни в кэше;
• negative_dns_ttl 5 minutes – время кэширования негативных DNS-ответов – число задает их время жизни в кэше;
• range_offset_iimit о KB – если клиент делает запрос с середины объекта, то:
– 1 – вынуждает Squid загрузить весь объект в кэш до того, как начать передачу клиенту;
– 0 – означает, что Squid никогда не будет грузить больше, чем клиент запросил;
– число, отличное от 1 – начало запроса меньше этого числа – Squid будет грузить весь объект.
Время ожиданияВ этом разделе задаются различные временные параметры Squid:
• connect_timeout 120 seconds – время ожидания соединения с сервером;
• siteselect_timeout 4 seconds – максимальное время на выбор URL;
• read_timeout 15 minutes – сколько времени разрешается ждать следующего байта от сервера;