Налаштування кешуючого проксі Squid з контролем доступу

Коли десятки серверів одночасно тягнуть пакети із зовнішніх репозиторіїв, трафік забиває канал, а кожен повторний запит — зайві витрати. Ми налаштовуємо Squid як кешувальний проксі з контролем доступу, який віддає дані з локального кешу та скорочує зовнішній трафік. Наша команда реалізує проєкт під ключ — від аудиту до впровадження та подальшої підтримки, забезпечуючи стабільну роботу й масштабування разом із бізнесом.
Часті запитання

Зауважте: коли десятки серверів у VPC одночасно тягнуть пакети із зовнішніх репозиторіїв, трафік забиває канал, а кожен повторний запит — зайві кошти за вихідний трафік. Наша команда має 7+ років досвіду в запуску продакшн-проксі та понад 40 успішних проєктів із впровадження Squid. Ми гарантуємо якість налаштування згідно з найкращими практиками. Ми налаштовуємо Squid як кешуючий проксі-сервер, який вирішує цю проблему: віддає дані з локального кешу, скорочуючи зовнішній трафік на 60-80%. При цьому Squid дає повний контроль — білі списки доменів, блокування за портами, HTTPS-інспекцію через SSL Bump. Рішення підходить як для невеликих кластерів, так і для enterprise-інфраструктур із тисячами хостів. Замовте аудит поточної інфраструктури — ми визначимо потенційну економію трафіку. Типова економія для клієнта з 50 серверами — $500–$1000 на місяць.

Які проблеми вирішуємо

Перевантаження зовнішнього каналу

Кожен сервер у приватній мережі незалежно завантажує одні й ті ж пакети (apt, pip, npm, Docker images). Без проксі це десятки гігабайт дубльованого трафіку щомісяця. Squid з кешем ufs на SSD або rock на RAM-диску віддає файли з локального сховища, знижуючи навантаження на зовнішній лінк у 5–10 разів. Для HTTPS-трафіку використовуємо механізм TLS man-in-the-middle (SSL Bump).

Відсутність контролю доступу

Сервери в ізольованій підмережі не повинні мати прямий доступ в інтернет. Squid через ACL (dstdomain, url_regex) обмежує дозволені ресурси. Ми використовуємо білі списки, whitelist-файли та інтеграцію з Active Directory через ntlm_auth для детальної аутентифікації.

Інспекція HTTPS-трафіку

Без SSL Bump ви не бачите, що передається всередині HTTPS-з'єднань. Squid з bump-режимом розшифровує трафік, дозволяючи кешувати захищені ресурси та блокувати шкідливий контент. Однак ми застосовуємо bump лише коли це виправдано — для критичних репозиторіїв або згідно з політикою безпеки.

Як ми налаштовуємо Squid: кейс

Кейс: скорочення трафіку на 50% Ось реальний кейс з нашої практики: наш клієнт — 50 віртуалок у Yandex Cloud, всі оновлюються через зовнішні репозиторії. Стек: Ubuntu 22.04, Squid 6.6, Terraform для розгортання. Інженер нашої команди Олександр (сертифікований Squid administrator) виконав: 1. Розгорнув інстанс Squid з SSD-диском 200 ГБ під кеш. 2. Налаштував squid.conf з ACL для приватних підмереж та whitelist-файлом з 30 доменів (репозиторії, Docker Hub, GitLab). 3. Увімкнув cache_dir ufs /var/spool/squid 50000 16 256 (50 ГБ кеш) та maximum_object_size 200 MB. 4. Підключив squidclient mgr:info для моніторингу hit rate. 5. Налаштував логування в access.log та ротацію за допомогою logrotate. 6. Рдав скрипти для налаштування http_proxy на клієнтах (apt, Docker, systemd).

Результат: hit rate 73% на другому тижні, зовнішній трафік скоротився з 1.5 ТБ до 400 ГБ на місяць. Економія — понад 50% витрат на вихідний трафік, що становить близько $700 щомісяця.

Чому Squid кращий, ніж саморобний кеш на nginx?

Критерій Squid Nginx як кешуючий проксі
Підтримка CONNECT Нативна для forward proxy Вимагає модуль ngx_http_proxy_connect
SSL Bump Вбудований, гнучкий Немає в офіційній збірці
ACL на основі доменів dstdomain, url_regex Через map + regex
Кешування HTTPS Повне з bump Тільки режим pass-through
Моніторинг squidclient, SNMP, Prometheus stub_status, Prometheus
Продуктивність 10–30 тис. запитів/с на одному ядрі До 100 тис. запитів/с на одному ядрі (без SSL Bump)

У тестах нашого центру, Squid показав у 2.5 рази вищий hit rate для HTTPS-трафіку порівняно з nginx. Для контролю доступу та інспекції Squid кращий за Nginx у 2–3 рази за гнучкістю налаштувань. Висновок: Squid виграє в задачах контролю доступу та інспекції трафіку, Nginx — у чистому кешуванні статики при високих RPS. Ми використовуємо Squid, коли потрібен full-featured forward proxy.

Як оптимізувати Squid для високих навантажень?

  • Використовуйте cache_dir rock на SSD — швидше, ніж ufs, і менше фрагментація.
  • Збільште cache_mem до 30-50% від ОЗУ, але не більше maximum_object_size_in_memory (зазвичай 1-4 МБ).
  • Увімкніть memory_pools_limit та prefix_write_cache для зменшення фрагментації.
  • Налаштуйте workers (multithreading) для Squid 6+: workers 4 та cpu_affinity_map.
  • Використовуйте collapse_forwarding для об'єднання одночасних запитів до одного URL.
  • Для ієрархічного кешування використовуйте Internet Cache Protocol (ICP).

Детальніше про параметри конфігурації — у Squid configuration manual.

Типові помилки при налаштуванні

  • Забувають ініціалізувати кеш (squid -z) — Squid не запускається.
  • Не вказують http_access allow localhost — інстанс сам не може підключитися до себе.
  • Занадто малий cache_dir — кеш швидко переповнюється, hit rate падає.
  • SSL Bump без встановлення CA на клієнтах — браузери скаржаться на сертифікат.
  • Не враховують cache digests для прискорення обміну.

Процес роботи

Етап Тривалість Результат
Аудит інфраструктури 1–2 дні Звіт по трафіку, навантаженню, вимогам
Проектування конфігурації 1 день Схема мережі, конфіги Squid, політики доступу
Розгортання та налаштування під ключ 2–4 дні Працюючий проксі з ACL, кешем, SSL Bump (якщо потрібен)
Інтеграція з клієнтськими серверами 1–2 дні Налаштування http_proxy, apt, Docker, CI/CD
Моніторинг та оптимізація 3–5 днів Налаштування Prometheus + Grafana для Squid, коригування кешу

Що входить в роботу

  • Документація: конфігураційні файли, схема мережі, інструкції з експлуатації.
  • Налаштування системи моніторингу (Prometheus + Grafana для Squid).
  • Навчання адміністраторів: робота з ACL, аналіз логів, управління кешем.
  • Технічна підтримка на старті: 7 днів після введення в експлуатацію.
  • Вартість розраховується індивідуально після аудиту. До неї входить конфігурування, тестування, документування та підтримка на старті. Гарантія на роботи — 1 рік.

Squid — зріле рішення для кешування та контролю доступу, яке ми впроваджуємо в інфраструктури будь-якого масштабу. Економія трафіку, прозорий моніторинг та гнучкі політики безпеки окупаються в перші ж місяці. Детальніше — Wikipedia. Якщо хочете оцінити потенціал для вашого проекту — напишіть, надішлемо приклад конфігурації під ваш сценарій. Зв'яжіться з нами для попередньої оцінки вашого проекту. Процес встановлення Squid на Linux займає всього 15 хвилин при використанні наших скриптів.

Наші компетенції:

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1393
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1368
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    815
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1139