Прокси-сервер
Прокси-сервер – промежуточный сервер между клиентом (пользователем / приложением) и конечным ресурсом (сервером).
Содержит прокси IP-адреса (индивидуальные IP-адреса для сокрытия реального IP).
Принимает запросы от клиента, обрабатывает и передает дальше.
Может изменять или фильтровать данные.
Отличие от балансировщика и VPN
- Балансировщик нагрузки распределяет входящий трафик между серверами. Прокси - "посредник", без распределения нагрузки.
- VPN (Virtual Private Network) создаёт защищённое соединение между клиентом и сервером, для шифрования и анонимности. Прокси может менять IP-адрес и фильтровать трафик, но не всегда шифрует данные.
Для чего нужен?
Анонимность и скрытие IP-адреса
- Пример: для доступа к заблокированному контенту с помощью зарубежного прокси.
Кеширование
кэширует веб-страницы и ускоряет загрузку сайтов внутри сети (!) Кэш может быть не только в прокси. Нужно учитывать бизнес -логику при проектировании срока жизни данных в кэше. Многоуровневое кэширование может привести к ошибкам впоследствии
Контроль и фильтрация трафика
блокирует доступ сотрудников к определенным сайтам.
Балансировка нагрузки и защита серверов
скрывает реальные серверы, принимает на себя нагрузку и фильтрует вредоносные запросы. Схоже с балансировщиком, но цель другая — доп безопасность, а не отказоустойчивость.
Пример работы
- Клиент отправляет запрос на доступ к ресурсу через прокси-сервер.
- Прокси принимает запрос и анализирует его (проверка политики доступа, фильтрация, логирование).
- Если данные есть в кэше, прокси возвращает их без обращения к внешнему серверу. Если нет, прокси пересылает запрос на целевой сервер.
- Сервер обрабатывает запрос и отправляет ответ прокси.
- Прокси передает ответ клиенту и может модифицировать его (сжать контент или удалить конфиденциальные данные).
Типы (по протоколам)
HTTP-прокси
- Работает с HTTP-запросами.
- Используется для кэширования веб-страниц и фильтрации контента.
- Прокси-сервер пересылает запросы от клиента на веб-сайт, изменяя IP-адрес.
HTTPS-прокси
- Безопасное соединение и защита данных.
- Для конфиденциальных транзакций (например, банковские операции).
SSL-прокси
- Использует одно TCP-соединение для доступа как к HTTP, так и к HTTPS-ресурсам.
- Для безопасности при подключении.
CGI-прокси
- Извлекает веб-контент от имени клиента через веб-браузер.
- Использует зашифрованные формы для анонимного доступа к сайтам.
SOCKS-прокси
- Для задач с интенсивным трафиком (например, P2P или потоковая передача).
- Работает через TCP-соединение, дает анонимность клиенту.
Прямой и обратный прокси
Прямой
Клиент >> Прокси-сервер >> Интернет-ресурс >> Сервер
- Перенаправляет запросы клиента в интернет, изменяет IP-адрес и фильтрует трафик.
- Клиент знает о наличии прокси и конфигурирует его.
Обратный (реверсивный)
Клиент >> Интернет-ресурс >> Прокси-сервер >> Сервер
- Работает на серверной стороне.
- Принимает запросы, но не передает их напрямую серверу, а перенаправляет на один или несколько серверов.
- Клиент не знает о нем.
Примеры интеграций
Интеграция с CDN
- Работает в связке с сетью доставки контента (CDN), кэширует и оптимизирует раздачу статических ресурсов.
Интеграция с [WAF (Web Application Firewall)] (Web Application Firewall)
- Фильтрует трафик через WAF для защиты веб-приложения от атак на уровне приложения.
В микросервисной архитектуре
- Управляет взаимодействием микросервисов (маршрутизация и балансировка трафика).
- Пример: сервис-меш с прокси для маршрутизации API-запросов между микросервисами.
Пример архитектуры с прокси
[ Клиенты ] → [ Reverse Proxy ] → [ Балансировщик ] → [ Серверы приложений ] → [ БД ]
- Клиенты отправляют запросы на веб-приложение.
- Они проходят через реверс-прокси.
- Прокси фильтрует трафик, кэширует статический контент и передает запросы на балансировщик нагрузки.
- Балансировщик распределяет запросы между серверами приложений.
- Приложения обрабатывают запросы и отправляют ответы обратно через ту же цепочку.
Недостатки
- Потенциальная утечка данных (например, если ненадежный прокси).
- Снижение производительности (если сервер перегружен).
- Недостаточная защита (если прокси не поддерживает шифрование трафика).
Ключевые метрики работы прокси
- Задержка (Latency) – время обработки запроса прокси-сервером.
- Уровень кеширования (Cache Hit Ratio) – процент запросов, обработанных из кеша.
- Пропускная способность (Throughput) – объем трафика, который прокси способен обработать в единицу времени.
- Частота отказов (Error Rate) – процент запросов, завершившихся ошибками.
- Время отклика (Response Time) – среднее время ответа на запрос.
Сравнение типов прокси-серверов
| Типы | Краткий принцип | Задачи | Пример | Минусы |
|---|---|---|---|---|
| Прозрачные | Не скрывают реальный IP-адрес клиента | Фильтрация контента, кэширование, анализ трафика | В корп сетях для контроля доступа к интернету (например, для блокировки определенных сайтов) | Не обеспечивает анонимность, клиент может узнать о прокси |
| Анонимные | Скрывают реальный IP-адрес, но сообщают серверу, что используется прокси | Для анонимности, обход блокировок | Для просмотра контента, доступного только в определенных странах | Сайты могут блокировать анонимные прокси |
| Искажающие | Скрывают реальный IP-адрес и изменяют данные запроса (например, изменяют заголовки) | Обход блокировок, сокрытие личной информации | Для обхода строгих проверок на сайтах, например, при автоматизированном парсинге или регистрации аккаунтов | Легко обнаруживаются |
| Серверные |