Прокси-сервер – промежуточный сервер между клиентом (пользователем / приложением) и сервером
🔵содержит прокси IP-адреса (индивидуальные IP-адреса для сокрытия реального IP)
🔵принимает запросы от клиента, обрабатывает и передает дальше
🔵может изменять или фильтровать данные
Отличие от балансировщика и VPN
🟠балансировщик нагрузки распределяет входящий трафик между серверами
🟡прокси - "посредник", без распределения нагрузки
🟠VPN (Virtual Private Network) создаёт защищённое соединение между клиентом и сервером, для шифрования и анонимности
🟡прокси может менять IP-адрес и фильтровать трафик, но не всегда шифрует данные
Для чего нужен?
Анонимность и скрытие IP-адреса
🔵пример: для доступа к заблокированному контенту с помощью зарубежного прокси
Кеширование
🔵кэширует веб-страницы и ускоряет загрузку сайтов внутри сети
(!) Кэш может быть не только в прокси. Важно учитывать последствия кэширования на разных уровнях
Контроль и фильтрация трафика
🔵блокирует доступ сотрудников к определенным сайтам
Балансировка нагрузки и защита серверов
🔵скрывает реальные серверы, принимает на себя нагрузку и фильтрует вредоносные запросы
схоже с балансировщиком, но цель другая - доп безопасность, а не отказоустойчивость
Пример работы
1️⃣ клиент отправляет запрос на доступ к ресурсу через прокси-сервер
2️⃣прокси принимает запрос и анализирует его (проверка политики доступа, фильтрация, логирование)
3️⃣©️ если данные есть в кэше, то прокси возвращает их без обращения к внешнему серверу
©️ если нет, то прокси пересылает запрос на целевой сервер
4️⃣сервер обрабатывает запрос и отправляет ответ прокси
5️⃣прокси передает ответ клиенту + может модифицировать его (сжать контент, удалить конфиденциальные данные)
Прямой и обратный прокси
Прямой
Клиент ➡ Прокси-сервер ➡ Интернет-ресурс ➡ Сервер
🟡перенаправляет запросы клиента в интернет, изменяет IP-адрес и фильтрует трафик
©️клиент знает о наличии прокси, и конфигурирует его
Обратный (реверсивный)
Клиент ➡ Интернет-ресурс ➡ Прокси-сервер ➡ Сервер
🟡работает на серверной стороне
🟡принимает запросы, но не передает их напрямую серверу, а перенаправляет на один / несколько серверов
©️ клиент не знает о нем
Примеры интеграции
Интеграция с CDN
▫️работает в связке с сетью доставки контента (CDN), кэширует и оптимизирует раздачу статических ресурсов
Интеграция с WAF (Web Application Firewall)
▫️фильтрует трафик через WAF для защиты веб-приложения от атак на уровне приложения
В микросервисной архитектуре
▫️управляет взаимодействием микросервисов (маршрутизация и балансировка трафика)
пример: сервис-меш с прокси для маршрутизации API-запросов между микросервисами
Пример архитектуры с прокси
[ Клиенты ] → [ Reverse Proxy ] → [ Балансировщик ] → [ Серверы приложений ] → [ БД ]🟠 клиенты отправляют запросы на веб-приложение
🟠 они проходят через реверс-прокси
🟠 прокси фильтрует трафик, кэширует статический контент и передает запросы на балансировщик
🟠 балансировщик распределяет их между серверами приложений
🟠 приложения обрабатывают запросы и отправляют ответы обратно через ту же цепочку
📎 Материалы
1. Прокси
2. Что такое прокси-сервер и как его настроить
3. Прокси-сервер: что это такое и нужен ли он вам?
4. Что такое прокси? Для самых маленьких
5. Что такое прямой прокси и обратный прокси
6. Разница между обратным и прямым прокси
7. Разница между прямым прокси, обратным прокси и балансировщиком нагрузки
8. Типы Прокси HTTP, HTTPS, Socks
9. VPN или прокси-сервер: что лучше и в чем разница?
📚Книги
Безопасность веб-приложений. Разведка, защита, нападение. — Хоффман Эндрю
#проектирование #инфраструктура
➿➿➿➿➿➿➿➿➿➿
🧑🎓 Больше полезного в базе знаний по системному анализу