Перейти к содержимому
Skip to content
← Все статьи

Обратный прокси: как работает и зачем нужен

Обратный прокси (reverse proxy) — это сервер, расположенный между клиентскими устройствами и бэкенд-серверами. Он принимает запросы клиентов, перенаправляет их на соответствующий бэкенд и возвращает ответ клиенту. В отличие от прямого прокси (который действует от имени клиентов), обратный прокси действует от имени серверов, обеспечивая единую точку входа для распределённой инфраструктуры.

Как работает обратный прокси

Когда клиент отправляет HTTP-запрос, он сначала попадает на обратный прокси. Прокси анализирует запрос и перенаправляет его на один или несколько бэкенд-серверов. Ответ возвращается через прокси обратно клиенту. Клиент никогда не взаимодействует с бэкендом напрямую.

Клиент → Обратный прокси → Бэкенд-сервер(ы)
Клиент ← Обратный прокси ← Бэкенд-сервер(ы)

Обратный прокси принимает решения о маршрутизации на основе множества факторов: URL-пути, проверку HTTP-заголовков, IP клиента, состояния здоровья серверов, текущей нагрузки, географического расположения и других параметров.

Ключевые преимущества обратного прокси

1. Балансировка нагрузки

Обратный прокси распределяет входящий трафик между несколькими бэкенд-серверами, предотвращая перегрузку любого отдельного сервера. Это позволяет горизонтально масштабироваться — вы добавляете серверы за прокси, а не модернизируете единственную машину.

2. SSL/TLS-терминация

Обратный прокси выполняет шифрование и дешифрование TLS, снимая эту ресурсоёмкую нагрузку с бэкенд-серверов. Это упрощает управление сертификатами — достаточно установить и обновлять сертификаты только на прокси.

# Пример SSL-терминации в Nginx
server {
    listen 443 ssl http2;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    location / {
        proxy_pass http://backend_pool;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

3. Кэширование

Обратный прокси может кэшировать ответы бэкенд-серверов. Когда кэшированный ответ доступен, прокси отдаёт его напрямую, значительно сокращая время ответа и нагрузку на серверы.

# Конфигурация кэширования Nginx
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=app_cache:10m max_size=1g inactive=60m;

server {
    location / {
        proxy_cache app_cache;
        proxy_cache_valid 200 10m;
        proxy_cache_valid 404 1m;
        proxy_cache_use_stale error timeout updating;
        add_header X-Cache-Status $upstream_cache_status;
        proxy_pass http://backend;
    }
}

4. Безопасность и анонимность

Обратный прокси скрывает характеристики бэкенд-серверов. Внешние клиенты видят только IP геолокацию и заголовки прокси. Это даёт несколько преимуществ безопасности:

5. Сжатие

Обратный прокси сжимает ответы (gzip, Brotli) перед отправкой клиентам, уменьшая использование полосы пропускания и улучшая время загрузки страниц.

Обратный прокси vs прямой прокси

АспектОбратный проксиПрямой прокси
Действует от имениСерверовКлиентов
Осведомлённость клиентаКлиент обычно не знает о его существованииКлиент явно настраивает его
Основное применениеБалансировка, SSL, кэширование, безопасностьПриватность, контроль доступа, кэширование
РасположениеПеред веб-серверамиПеред клиентскими сетями
Кто контролируетАдминистратор сервераАдминистратор сети клиента

Популярное ПО для обратного прокси

ПОЛучше всего дляКлючевые особенности
NginxВысокопроизводительная раздача веб-контентаСобытийная модель, мало памяти, широко распространён
HAProxyЧистая балансировка нагрузкиTCP/HTTP, проверки здоровья, продвинутые алгоритмы
Apache (mod_proxy)Существующие Apache-средыГибкий, зрелый, множество модулей
TraefikКонтейнерная оркестрацияАвтообнаружение, Let's Encrypt, Docker/K8s
CaddyПростота и автоматический SSL/TLS проверкуАвтоматический TLS, простая конфигурация, HTTP/3
EnvoyService mesh / микросервисыgRPC, наблюдаемость, динамическая конфигурация

Nginx как обратный прокси: полный пример

Вот готовая к продакшену конфигурация Nginx с основными паттернами обратного прокси:

upstream backend_pool {
    least_conn;
    server 10.0.1.10:8080 weight=5;
    server 10.0.1.11:8080 weight=3;
    server 10.0.1.12:8080 backup;
    keepalive 32;
}

server {
    listen 80;
    server_name example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;

    # Заголовки безопасности
    add_header X-Frame-Options DENY;
    add_header X-Content-Type-Options nosniff;
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

    # Gzip-сжатие
    gzip on;
    gzip_types text/plain text/css application/json application/javascript;
    gzip_min_length 1000;

    location / {
        proxy_pass http://backend_pool;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Connection "";

        proxy_connect_timeout 5s;
        proxy_send_timeout 30s;
        proxy_read_timeout 30s;

        proxy_next_upstream error timeout http_502 http_503;
        proxy_next_upstream_tries 2;
    }

    location /static/ {
        alias /var/www/static/;
        expires 30d;
        add_header Cache-Control "public, immutable";
    }
}

Типичные ошибки

Мониторинг обратного прокси

Ключевые метрики для наблюдения:

Итоги

Обратный прокси — критически важный компонент современной веб-инфраструктуры. Он обеспечивает балансировку нагрузки, SSL-терминацию, кэширование, безопасность и сжатие из единой точки управления. Независимо от масштаба приложения, развёртывание обратного прокси улучшает производительность, безопасность и операционную гибкость. Nginx, HAProxy и Traefik — самые популярные варианты, каждый оптимизированный для разных сценариев.

Проверьте ваш сайт прямо сейчас

Проверить →
Другие статьи: Инфраструктура
Инфраструктура
Оптимизация производительности Nginx: ключевые настройки
16.03.2026 · 23 просм.
Инфраструктура
CDN: как работает и зачем нужен
14.03.2026 · 14 просм.
Инфраструктура
Пул соединений с БД: как работает и лучшие практики
16.03.2026 · 11 просм.
Инфраструктура
Что такое CDN и как он ускоряет сайт
11.03.2026 · 22 просм.