Squid. Подключение к другим прокси серверам

Вместо загрузки веб-страниц напрямую из Интернет, Squid может быть сконфигурирован для подключения к другому прокси серверу и перенаправлять к нему некоторые или даже все запросы от клиента. Это может понадобится если в организации есть один главный прокси и по одному простому прокси серверу на департамент. В этом случае, простые прокси серверы перед выходом в интернет, сначала отправят запрос к главному прокси серверу, чтобы посмотреть наличие требуемого клиентом, в кэше главного прокси сервера. Это также может быть полезно и в домашних условиях если ваш интернет провайдер откроет доступ к своему прокси серверу. При этом, сначала поиск будет осуществлен в кэше прокси провайдера(возможно по более быстрому соединению с ним, такому как Ethernet). И если в кэше не найдено необходимой информации или страницы уже устарели, то запрос будет направлен напрямую в Интернет.

Использование ACL для классифицирования запросов, вы можете настроить Squid для перенаправления только некоторых запросов к другому прокси серверу, в то время как остальные пойдут напрямую в Интернет. Например, ваш прокси сервер может принимать запросы к ресурсам вашей внутренней сети, а остальные перенаправлять на главный прокси сервер.

Для того, чтобы ваш сервер мог использовать другой прокси сервер для перенаправления на него запросов, за исключением некоторых доменов или сетей, выполните следующие инструкции:

1. На главной странице модуля нажмите на кнопку Access Control(Контроль доступа).

Squid proxy module

Рисунок - Главная страница модуля Squid. Для увеличения картинки, нажмите на неё.

2. Создайте ACL вида Web Server Hostname или Web Server Address который будет содержать веб-серверы к которым ваш прокси сервер будет подключатся напрямую. Назовите этот ACL - direct, к примеру.

Access control lists

Рисунок - Таблица Access Control lists. Для увеличения картинки, нажмите на неё.

Web server hostname ACL

Рисунок - Форма Create Web server hostname ACL. Для увеличения картинки, нажмите на неё.

3. Вернитесь на главную страницу модуля и нажмите на иконку Other Caches(Другие кэши) и вы получите страницу содержающую список других прокси серверов(если они были введены ранее) и форму для настройки опций которые определяют, когда использовать тот или иной сторонний прокси сервер.

Other proxies

Рисунок - Главная страница модуля Squid. Для увеличения картинки, нажмите на неё.

4. Нажмите на ссылку Add another cache(Добавить сторонний прокси сервер).

Add another cache

Рисунок - Таблица Other caches. Для увеличения картинки, нажмите на неё.

5. В открывшейся форме, в поле Hostname(Имя хоста), введите полное имя хоста главного прокси сервера, например corporateproxy.example.com. Не вводите просто corporateproxy, у Squid иногда возникают трудности с определением нестандартных DNS имен.

Cache host options

Рисунок - Форма Cache Host Options. Для увеличения картинки, нажмите на неё.

6. В меню Type(Тип) выберите parent(Родительский, главный), и тогда Squid "поймёт" что этот прокси сервер более высокого уровня.

7. В поле Proxy port(Порт прокси) введите номер порта который прослушивает главный прокси сервер. Например, 8080.

8. В поле ICP port(ICP порт) введите номер порта который главный прокси сервер использует для прослушивания ICP запросов. Обычно это 3130. Если вы не знаете какой порт слушает главный прокси сервер, все равно введите 3130.

9. Нажмите кнопку Save(Сохранить) внизу страницы. Вас автоматически вернет на страницу со списком других прокси.

10. В форме расположенной внизу этой страницы есть секция ACLs to fetch directly(ACL которые пропускать напрямую). Список ACL здесь схож с тем, что используется при определении Proxy restrictions(Прокси ограничения). Подробнее об ACL типах см. Создание и редактирование прокси ограничений. Здесь вместо команд Allow(Разрешить) и Deny(Запретить) используются команды определяющие - запрашивать ли страницу напрямую или перенаправить запрос на главный другой прокси сервер.

Используйте ссылку Add ACLs to fetch directly(Добавить ACL для отправки запросов напрямую) и добавьте вами созданный ACL direct, выбрав действие Allow(Разрешить). А затем добавьте ACL all выбрав действие Deny(Запретить). Это определяет для Squid то, что страницы из локальной сети будут браться напрямую, а остальные пойдут через другой прокси.

Create directly fetch

Рисунок - Форма Create Direct fetch. Для увеличения картинки, нажмите на неё.

11. В завершение, нажмите на кнопку Apply Changes(Применить изменения) для вступления изменений в силу.

Если вы просто хотите, чтобы ваш прокси перенаправлял все запросы на другой прокси сервер, то вам необходимо пропустить шаг 10.

 

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

Второй подход обычно решается следующим образом - создается одна DNS запись на каждый прокси сервер, с одинаковым именем для всех прокси(например, proxy.example.com), но с разными IP адресами. Затем, когда клиентская машина подключается к proxy.example.com, ей возвращается весь список IP адресов, связанных с этим именем. После этого клиентская система выбирает случайно из списка один IP адрес и производит подключение. Таким образом получается распределение нагрузки по всем прокси серверам связанным с этой DNS записью. Другой путь - использовать коммутаторы(switch), чтобы перенаправлять траффик на некоторые IP адреса, как это делается при использовании нескольких прокси серверов. Этот путь более дорогой(качественные коммутаторы стоят недешево), но он надежнее, поскольку если сервер не может отвечать на запросы(например, если он "упал"), это фиксируется и он исключается из цепочки используемых серверов. Но здесь есть проблема. В таком случае, каждый сервер имеет свой собственный кэш, поэтому если два различных клиента запросят одну и ту же веб-страницу с двух различных прокси, то она(веб-страница) будет скачана дважды!

К счастью, Squid имеет возможность решающую эту проблему. Она может быть настроена таким образом, чтобы контактировать с другими кэшами в некотором кластере прокси серверов, и узнавать есть ли в кэшах запрашиваемая веб-страница или иной объект. Если объект уже есть в кэше кластера, то он будет извлечен оттуда, вместо закачивания извне. Поскольку все прокси сервера в организации обычно подключены через скоростное соединение, то обработка запросов происходит с большей эффективностью для клиентов. Протокол используемый для объединения прокси серверов называется ICP и используется только в Squid.

На главной странице модуля нажмите на иконку Other Caches(Другие кэши). Чтобы создать два или более прокси сервера общающиеся между собой по протоколу ICP выполните следующие инструкции:

1. Нажмите на ссылку Add another cache(Добавить сторонний прокси сервер).

2. В появившейся форме, в поле Hostname(Имя хоста) введите полное имя хоста одного серверов, где распологается другой кэш.

3. В меню Type(Тип) выберите sibling(братский, соседский). Это определит для Squid, что другой кэш находится на том же уровне с ним, т.е. равный ему.

4. В поле Proxy port(Прокси порт) введите HTTP порт который слушает другой прокси.

5. В поле ICP port(ICP порт) введите номер порта который слушает другой(братский) прокси для обработки ICP запросов. Обычно это 3130.

6. Нажмите кнопку Save(Сохранить) для добавления другого прокси.

7. Повторяйте шаги со 2 по 7 для каждого следующего прокси в кластере.

8. Нажмите кнопку Apply Changes(Применить изменения) для того, чтобы изменения вступили в силу.

 

Конечным результатом должно стать то, что каждый прокси сервер в кластере может свободно использовать кэши других прокси, находящихся с ним в одном кластере, для обработки запроса клиента. Также вы можете использовать ACL для определения некоторых запросов, которые будут идти напрямую, без поиска в других кэшах.




Ссылки:

К содержанию

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

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

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