Прокси-сервер
Прокси-сервер – промежуточный сервер между клиентом (пользователем / приложением) и конечным ресурсом (сервером).
Содержит прокси 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), кэширует и оптимизирует раздачу статических ресурсов.