Squid. Підключення до інших проксі-серверів

Замість завантаження веб-сторінок безпосередньо з Інтернету, Squid може бути налаштований для підключення до іншого проксі-сервера і перенаправляти до нього деякі або навіть всі запити від клієнта. Це може знадобитися якщо в організації є один головний проксі і по одному простому серверу проксі на департамент. У цьому випадку прості проксі сервери перед виходом в інтернет спочатку відправлять запит до головного проксі сервера, щоб подивитися наявність необхідного клієнтом, в кеші головного проксі сервера. Це також може бути корисно і в домашніх умовах, якщо ваш інтернет-провайдер відкриє доступ до свого проксі-сервера. При цьому спочатку пошук буде здійснено в кеші проксі провайдера (можливо по більш швидкому з'єднанню з ним, такому як Ethernet). І якщо в кеші не знайдено необхідної інформації або сторінки вже застаріли, запит буде направлений безпосередньо в Інтернет.

Використовуючи ACL для класифікації запитів, ви можете налаштувати Squid для перенаправлення лише деяких запитів до іншого проксі-сервера, в той час як інші підуть безпосередньо в Інтернет. Наприклад, ваш проксі-сервер може приймати запити до ресурсів вашої внутрішньої мережі, а інші перенаправляти на головний проксі-сервер.

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

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

проксі-серверів

Малюнок - Головна сторінка модуля Squid. Для збільшення картинки натисніть на неї.

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

підключення

Малюнок – Таблиця Access Control lists. Для збільшення картинки натисніть на неї.

підключення

Малюнок - Форма Create Web server hostname ACL. Для збільшення картинки натисніть на неї.

3. Поверніться на головну сторінку модуля та натиснітьOther Caches(Інші кеші) і ви отримаєте сторінку, яка містить список інших проксі серверів (якщо вони були введені раніше) і форму для налаштування опцій які визначають, коли використовувати той чи інший сторонній проксі-сервер.

інших

Малюнок - Головна сторінка модуля Squid. Для збільшення картинки натисніть на неї.

4. НатиснітьAdd another cache(Додати сторонній проксі сервер).

інших

Малюнок – Таблиця Other caches. Для збільшення картинки натисніть на неї.

5. У формі, що відкрилася, в поліHostname(Ім'я хоста), введіть повне ім'я хоста головного проксі сервера, наприклад corporateproxy.example.com . Не вводьте просто corporateproxy, у Squid іноді виникають труднощі з визначенням нестандартних імен DNS.

проксі-серверів

Малюнок – Форма Cache Host Options. Для збільшення картинки натисніть на неї.

6. У менюType(Тип) виберітьparent(Батьківський, головний), і тоді Squid "зрозуміє" що цей проксі сервер вищого рівня.

7. У поліProxy port(Порт проксі) введіть номер порту, який прослуховує головний проксі сервер. Наприклад, 8080.

8. У поліICP port(ICP порт) введіть номер порту який головний сервер проксі використовує для прослуховування ICP запитів. Зазвичай це 3130. Якщо ви не знаєте, який порт слухає головний проксі сервер, все одно введіть 3130.

9. Натисніть кнопкуSave(Зберегти) внизу сторінки. Вас автоматично поверне на сторінку зі списком інших проксі.

Використовуйте посиланняAdd ACLs to fetch directly(ДодатиACL для надсилання запитів безпосередньо) і додайте вами створений ACL direct , вибравши діюAllow(Дозволити >). А потім додайте ACL all вибравши діюDeny(Заборонити). Це визначає для Squid те, що сторінки з локальної мережі будуть братися безпосередньо, а решта піде через інший проксі.

проксі-серверів

Малюнок – Форма Create Direct fetch. Для збільшення картинки натисніть на неї.

11. На завершення, натисніть кнопкуApply Changes(Застосувати зміни), щоб змінити чинність.

Якщо ви просто хочете, щоб ваш проксі перенаправляв усі запити на інший проксі сервер, вам необхідно пропустити крок 10.

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

На щастя, 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 для визначення деяких запитів, які будуть йти безпосередньо, без пошуку в інших кешах.