SquidFaq

Материал из ALT Linux Wiki

SquidFaq — ответы на часто задаваемые вопросы по кеширующему прокси-серверу Squid. Вы можете также предложить свой вопрос.

Общие вопросы

Что такое Squid?

Squid это высокопроизводительный кеширующий прокси для web клиентов, поддерживающий FTP, gopher, и HTTP. Все запросы Squid выполняет как единый, неблокируемый процесс ввода/вывода по IPv4 или IPv6.

Squid хранит метаданные и особенно часто запрашиваемые объекты в ОЗУ, кеширует DNS запросы, не блокируется при выполнении DNS запросов, и не кеширует неудавшиеся запросы.

Также поддерживает SSL, расширенный контроль доступа и полную регистрацию запросов. Используя Internet Cache Protocol (ICP), кеши Squid можно расположить иерархически для дополнительного выигрыша в пропускной способности канала.

Что такое кеширование объектов интернет?

Это способ хранения запрошенных из Интернет объектов (например, данных доступных по HTTP, FTP и gopher протоколам) на сервере, находящемся ближе к запрашивающему компьютеру нежели исходный. Браузеры могут потом использовать кеш Squid как HTTP прокси-сервер, уменьшая как время доступа, так и нагрузку на канал связи.

Почему Squid?

Один из разработчиков Харис Ламен отвечает, — "Все лучшие названия уже расхватали. Нам нужно было как-то отличаться от кеша Harvest. Squid было кодовое название на начальной стадии разработки, а потом оно прилипло."

Какая последняя версия Squid?

Текущую собранную для в Сизифа и использованию в стабильных ветках ALT Linux версии можно посмотреть здесь: Пакет: squid.

На сайте разработчиков есть страница Версии Squid, где всегда можно получить исходные коды самых свежих и предыдущих версий.

Версию, установленную в вашей системе ALT Linux можно узнать, дав команду в консоли:

rpm -q squid

Кто автор Squid?

Squid это результат усилий множества людей из сообщества Internet. Возглавляет проект Duane Wessels из National Laboratory for Applied Network Research (основанной National Science Foundation).

Кто мейнтейнер Squid в ALT Linux?

Список всех мейнтейнеров, принимавших участие в текущей и/или предыдущих сборках пакета доступен на странице: Пакет: squid.

Какая ещё доступна дополнительная документация по Squid?

Официальный сайт Squid

Информационный ресурс, посвящённый Squid на русском языке

Squid: Полное руководство (ISBN 0-596-00162-2)

Официальный Squid FAQ

Руководство программиста Squid

RFC 2186 ICPv2 — Протокол

RFC 2187 ICPv2 — Приложение

RFC 1016

Поддерживает ли Squid в ALT Linux SSL/HTTPS/TLS?

Да.

Каков правовой статус программного обеспечения Squid?

Squid это свободное программное обеспечение, распространяемое под лицензией GPL.

Могу я получить платную техподдержку по Squid?

Да. Пожалуйста обратитесь в отдел техподдержки ООО "Альтлинукс".

Внутреннее устройство

Что такое кешируемые объекты?

Интернет-объект это файл, документ или ответ на обращение к какому-либо сервису предоставляемому в Интеренет (например, FTP, HTTP, или gopher). Клиент запрашивает интернет-объект из кеша прокси-сервера; если объект ещё не кеширован, то прокси-сервер получает объект (либо от узла сети указанного по запрошенному адресу URL, либо от родительского или соседнего кеша) и доставляет его клиенту.

Что такое ICP протокол?

ICP (Internet Cache Protocol) — протокол кеширования в сети Интернет. Группы серверов Squid применяют протокол ICP для передачи друг другу сведений о содержимом своих кеш-буферов. Протокол ICP описан в двух документах RFC. В RFC 2186 определяется сам протокол, а в RFC 2187 применение ICP для иерархического кеширования в Веб.

В основном, ICP используется при иерархическом кешировании между кешами расположенными на одном уровне. Если Squid не находит запрошенный документ в своём кеше, то он отправляет ICP-запрос к известным ему узлам Squid своего уровня. Эти родственные узлы отдают ICP-ответ: "HIT" (Есть) или "MISS" (Отсутствует). Основываясь на этих ответах, запрашивавший сервер делает выбор как разрешить свой собственный MISS (Отсутствует).

ICP поддерживает мультиплексную передачу множества потоков объектов по одному TCP соединению. Текущая реализация ICP осуществлена поверх UDP. Также Squid поддерживает широковещательные запросы ICP.

Что такое иерархия кешей? Родительские и одноуровневые узлы?

  • Parent — родительский proxy-сервер;
  • Sibling — братский proxy-сервер.

Иерархия кешей — это группа кеширующих прокси-серверов, организованных в логическую структуру связями вида родитель/потомок и узлы-братья таким образом, что ближайший к интеренет-шлюзу узел (ближайший к транзитной точке опорной сети) выполняет роль родителя по отношению к узлам находящимся дальше от магистральной сети. Родительский кеш разрешает ситуации "MISS" (Отсутствует) возникающие в дочерних кешах. Иными словами, когда кеш-узел запрашивает объект у родительского узла, и родитель не имеет запрошенного объекта в своём кеш-буфере, то родитель получает объект, кеширует его, и доставляет узлу-потомку. Это обеспечивает достижение иерархией максимального снижения нагрузки на канал связи, помогает снизить нагрузку на информационные сервера в Интернете находящиеся за пределами сети, которую обслуживает данная иерархия, и создаёт насыщенный родительский кеш, что позволяет достичь большего процента попаданий при обращении других кешей-потомков к родительским.

В дополнении к связям родитель/потомок, Squid поддерживает понятие узлов-братьев: в иерархии, кеши одного уровня, обеспечивают разделение нагрузки между серверами. Каждый кеш-сервер иерархии, используя простой протокол разрешения, независимо принимает решение о получении ссылки с домашнего сайта объекта, либо родительского кеша, или братского кеша. Узлы-братья никогда не станут получать объект для своего кеш-брата, чтобы разрешить его внутренний "MISS" (Отсутствует).

Что такое разрешающий алгоритм кеширования Squid?

  1. Послать запрос всем узлам-братьям
  2. Ожидать прибытия всех ответов (время ожидания настраивается, обычно 2 сек.)
        1. Приступить к получению объекта от первого узла, ответившего "HIT" (Есть) или
        2. Получить объект от родительского узла, который первым ответил "MISS" (Отсутствует) (с учетом весовых значений) или
        3. Получить объект из исходного источника

Алгоритм несколько более сложен при использовании межсетевых экранов.

Можно использовать инструкцию single_parent_bypass, чтобы пропустить ICP-запросы в случае, если из всех родственных узлов есть только родительский кеш (т.е., если имеется только одно ближайшее место, в котором можно получить объект, зачем заботится об опросах).

Над чем сейчас работают разработчики?

Планам развития посвящены специальные страницы на официальном сайте Squid Roadmap.

Расскажите мне больше о рабочей нагрузке трафика в Интернет

Рабочая нагрузка Интеренет-трафика суть нагрузка от клиента или группы клиентов прилагаемая к системе. Понимание природы этой нагрузки важно для управление пропускной способностью и производительностью системы.

Где узнать больше про межсетевые экраны?

Пожалуйста, обратитесь к разделу Etcnet Firewall.

Что такое "Storage LRU Expiration Age?"

Что значит "Failure Ratio at 1.01; Going into hit-only-mode for 5 minutes"?

Squid периодически считывает свой файл конфигурации?

Squid читает файлы конфигураций при старте/рестарте/реконфигурации.