Squid
Материал из Википедии — свободной энциклопедии
| Squid | |
|
Логотип Squid
|
|
| Тип | Прокси-сервер |
| ОС | Кроссплатформенное программное обеспечение |
| Версия | 3.0.STABLE14 — 11 апреля 2009 |
| Тестовая версия | 3.1.0.7 — 8 апреля 2009 |
| Лицензия | GNU General Public License |
| Сайт | Официальный сайт |
Squid — программный пакет, реализующий функцию кеширующего прокси-сервера для протоколов HTTP, FTP, Gopher и (в случае соответствующих настроек) HTTPS. Разработан сообществом как программа с открытым исходным кодом (распространяется в соответствии с GNU GPL). Все запросы выполняет как один неблокируемый процесс ввода/вывода. Используется в UNIX-системах и в ОС семейства Windows NT. Имеет возможность взаимодействия с Active Directory Windows Server путём аутентификации через LDAP, что позволяет использовать разграничения доступа к интернет ресурсам пользователей, которые имеют учётные записи на Windows Server, также позволяет организовать «нарезку» интернет трафика для различных пользователей.
Сервер Squid развивается в течение уже многих лет. Обеспечивает совместимость с большинством важнейших протоколов Интернета, а также с операционными системами:
- GNU/Linux
- FreeBSD
- OpenBSD
- NetBSD
- BSDI
- Mac OS X
- OSF и Digital Unix
- IRIX
- SunOS/Solaris
- NeXTStep
- SCO Unix
- AIX
- HP-UX
- Microsoft Windows
Squid используется и в системе Wikimedia.
Содержание |
[править] Описание архитектуры
[править] Списки контроля доступа
Для контроля доступа к ресурсам и определения ряда действий используются списки контроля доступа[1] (англ. access control list, acl). Каждый acl может состоять из нескольких критериев (но только одного типа):
- адрес (сеть) источника запроса, цели запроса
- имя (доменное имя) источника запроса, имя цели запроса
- части URL запроса
- протокол
- порт (получателя, отправителя, самого squid’а)
- метод (PUT или GET) при передаче данных по HTTP
- браузер (User-agent)
- ident (запрос к рабочей станции)
- Номер автономной системы отправителя/получателя (не для всех случаев)
- Авторизация на прокси-сервере (см. ниже)
- Номер соединения (чаще всего используется для ограничения количества соединений)
- SNMP
- сертификаты пользователя
- параметры запроса
- внешние обработчики
[править] Идентификация
Squid поддерживает несколько видов идентификации пользователей:
- По IP-адресу (или доменному имени узла)
- По переданным реквизитам (логин/пароль)
- По идентификатору пользовательского агента (браузера)
Для идентификации по логину/паролю возможно использовать:
- Обычные логин/пароль
- NTLM-авторизацию
- Внешние программы авторизации (определяющие формат авторизации)
[править] Ограничение доступа для групп
| Этот раздел статьи ещё не написан.
Согласно замыслу одного из участников Википедии, на этом месте должен располагаться специальный раздел.
Вы можете помочь проекту, написав этот раздел. |
[править] Редиректоры
| Этот раздел статьи ещё не написан.
Согласно замыслу одного из участников Википедии, на этом месте должен располагаться специальный раздел.
Вы можете помочь проекту, написав этот раздел. |
[править] Ограничение максимальной скорости соединения
Ограничение максимальной скорости получения пользователем (пользователями) в squid реализовано с помощью механизма англ. delay pools (дословно — «пулы задержки»). Механизм ограничения скорости работает по принципу бассейна (откуда и название pool (бассейн)), в который «втекает» и «вытекает» информация. Отдельные конфигурируемые подобным образом области памяти называются англ. bucket (ведро). У ведра есть параметры: «ёмкость», «скорость наполнения». Если пользователь (пользователи) получают информацию на скорости ниже, чем «скорость наполнения», то ведро всегда полно. Если пользователь кратковременно поднимает скорость получения информации выше скорости наполнения, то до момента, пока ведро не пусто, он не ограничивается по скорости, как только ведро становится пустым, клиент получает информацию со скоростью наполнения ведра. В случае наличия групповых и индивидуальных ведёр, они включаются последовательно.
Существует три типа (класса) delay pools[2]:
- Единое ведро (англ. aggregate bucket, class 1) ограничение на общую потребляемую полосу для всей группы. (параметры: ёмкость бассейна, скорость наполнения).
- Единое ведро с автоматическим формированием индивидуальных вёдер (англ. single aggregate bucket as well as an "individual" bucket, class 2). Индивидуальные вёдра формируются из битов IP-адреса (c 25 по 32).
- Единое ведро, сетевые вёдра и индивидуальные вёдра (англ. single aggregate bucket as well as a "network" bucket and a "individual" bucket, class 3). Сетевое ведро формируется по битам 17-24 IP-адреса.
Для каждого ведра указываются два параметра: ёмкость и скорость наполнения. −1 означает «без ограничения».
Попадание пользователей в то или иное ведро определяется списками доступа к вёдрам, они просматриваются в порядке упоминания в файле конфигурации до первого совпадения. Пользователи, не попадающие ни в одно из вёдер, в скорости не ограничиваются.
[править] Обратное кеширование
Одной из особенностей squid является возможность работать в режиме «обратного прокси» («reverse proxy»), так же известного как «ускоритель» («http accelerator»). В этом случае вместо кеширования запросов нескольких пользователей к множеству сайтов, кешируются запросы множества пользователей к нескольким сайтам. В этом режиме принятый запрос проверяется на «динамичность» (нужно ли каждый раз обрабатывать запрос с нуля) и «возраст» (актуальны ли ещё данные). Если данные ещё актуальны и не поменялись, то запрос не передаётся серверу, а отдаётся из кеша squid’а. Таким образом существенно снижается нагрузка на серверы (например, в Википедии запросы к страницам кешируются, так как от просмотра их содержимое не меняется, при этом нагрузка на серверы существенно меньше — обработка запроса к кешу много проще, чем обработка запроса к базе данных SQL, обработка вики-разметки и формирование веб-страницы).
Кроме того, «обратный прокси» способен распределять запросы между несколькими серверами, балансируя нагрузку и/или обеспечивая отказоустойчивость, т.е. фактически предоставляет функциональность, аналогичную кластеру.
[править] Режим прозрачного прокси-сервера
В сочетании с некоторыми межсетевыми экранами и маршрутизаторами squid может работать в режиме прозрачного прокси (англ. transparent proxy). В этом режиме маршрутизатор вместо того, чтобы сразу пересылать http-запросы пользователя http-серверу в Интернете, перенаправляет их прокси-серверу, который может работать как на отдельном хосте, так и на самом маршрутизаторе. Прокси-сервер обрабатывает запрос (с возможной отдачей содержимого из кеша), это содержимое направляется к запросившему пользователю, для которого оно выглядит как «ответ» сервера, к которому адресовался запрос. Таким образом, пользователь может даже не знать, что все запросы и ответы прошли через прокси-сервер. При таком подходе проксирования аутентификация не предусмотрена, так как прозрачность проксирования это и подразумевает.
[править] Достоинства
- Администратору прозрачного прокси-сервера не нужно настраивать каждую клиентскую машину для работы с прокси.
[править] Недостатки
[править] Ссылки
| В Википедии есть портал «Свободное программное обеспечение» |
- Squid Cache — Домашняя страница проекта.
- Squid + PF — Transparent proxying with Squid and PF.
- Logfile Analysis — Squid-Cache list of logfile analyzers.
- SAMS — this is a WEB-based interface and tool to manage users of SQUID proxy.
- ViSolve Squid Support — Руководство, советы по настройке.
- Squid Web Proxy Cache — зона особого внимания — FAQ, форум, ссылки на русскоязычные ресурсы, посвященные Squid (не обновляется с 2007 г.).
- Squid(кеширующий прокси для http) Установка, настройка и использование.
[править] Источники
- ↑ Описание ACL в руководстве
- ↑ http://www.squid-cache.org/Versions/v2/2.6/cfgman/delay_class.html Описание опции delay_class

