[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-ustroystvo-pk-i-seti-chto-takoe-proxy-i-reverse-proxy":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":22,"progress":23,"seo":24},242,"chto-takoe-proxy-i-reverse-proxy",7,"ustroystvo-pk-i-seti","Устройство ПК и сети","🖥️","Что такое Proxy и Reverse Proxy?","**Proxy (Forward Proxy, прямой прокси)** — сервер-посредник, через который клиент явно направляет свои запросы к целевому серверу. Прокси действует от имени клиента.\n\n**Reverse Proxy (обратный прокси)** — сервер-посредник, расположенный перед backend-серверами. Клиент обращается к reverse proxy, не зная о реальных серверах за ним. Reverse proxy действует от имени сервера.\n\n> **Аналогия из жизни:** Forward Proxy — это ваш представитель (адвокат), который ведёт переговоры от вашего имени, скрывая вашу личность. Reverse Proxy — это ресепшн в отеле: вы обращаетесь на ресепшн, а он решает, какой сотрудник (backend-сервер) обработает ваш запрос.\n\n### Forward Proxy\n\n```\nКлиент ──→ [Forward Proxy] ──→ Интернет ──→ Целевой сервер\n```\n\n**Зачем нужен:**\n- **Анонимность** — скрывает IP клиента от сервера\n- **Кэширование** — прокси хранит кэш ответов, ускоряя повторные запросы\n- **Фильтрация** — корпоративный прокси блокирует доступ к определённым сайтам\n- **Обход ограничений** — доступ к ресурсам через прокси в другой стране\n- **Логирование** — мониторинг трафика сотрудников\n\n### Reverse Proxy\n\n```\nКлиент ──→ [Reverse Proxy (Nginx)] ──→ Backend Server 1\n                                   ──→ Backend Server 2\n                                   ──→ Backend Server 3\n```\n\n**Зачем нужен:**\n- **Балансировка нагрузки (Load Balancing)** — распределяет запросы между backend-серверами (round-robin, least connections, IP hash, weighted)\n- **SSL\u002FTLS-терминация** — reverse proxy обрабатывает HTTPS, а к backend обращается по HTTP. Снимает криптографическую нагрузку с backend\n- **Кэширование** — кэширует статические ресурсы (изображения, CSS, JS)\n- **Сжатие** — gzip\u002Fbrotli-сжатие ответов\n- **Защита** — скрывает структуру backend, фильтрует вредоносные запросы, ограничивает rate limit\n- **Обслуживание статики** — раздаёт статические файлы напрямую, не нагружая backend\n\n### Сравнение Forward Proxy и Reverse Proxy\n\n| Свойство | Forward Proxy | Reverse Proxy |\n|---|---|---|\n| Расположение | На стороне клиента | На стороне сервера |\n| Знает ли клиент о нём? | Да (настраивается явно) | Нет (прозрачен для клиента) |\n| Скрывает | Клиента от сервера | Серверы от клиента |\n| Настройка | На стороне клиента | На стороне инфраструктуры |\n| Примеры | Squid, корпоративный прокси | Nginx, HAProxy, Envoy, Traefik |\n\n### Nginx как Reverse Proxy (пример конфигурации)\n\n\u003Cdetails>\n\u003Csummary>nginx.conf — reverse proxy с балансировкой и SSL\u003C\u002Fsummary>\n\n```nginx\nupstream backend {\n    server 10.0.0.1:8080;\n    server 10.0.0.2:8080;\n    server 10.0.0.3:8080;\n}\n\nserver {\n    listen 443 ssl;\n    server_name example.com;\n\n    ssl_certificate \u002Fetc\u002Fssl\u002Fcert.pem;\n    ssl_certificate_key \u002Fetc\u002Fssl\u002Fkey.pem;\n\n    location \u002Fapi\u002F {\n        proxy_pass http:\u002F\u002Fbackend;\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n    }\n\n    location \u002F {\n        root \u002Fvar\u002Fwww\u002Fstatic;\n        expires 30d;\n        add_header Cache-Control \"public, immutable\";\n    }\n}\n```\n\n\u003C\u002Fdetails>\n\n### Типичная production-архитектура с reverse proxy\n\n```\nInternet ──→ [CDN] ──→ [Nginx \u002F ALB] ──→ [Spring Boot App 1]\n                                     ──→ [Spring Boot App 2] ──→ [PostgreSQL]\n                                     ──→ [Spring Boot App 3]\n```\n\n### Для Java-разработчика\n\n- Типичная production-схема: **Nginx** (reverse proxy, SSL-терминация, статика) → **Spring Boot** (API, бизнес-логика) → **PostgreSQL**\n- Заголовки `X-Forwarded-For`, `X-Real-IP`, `X-Forwarded-Proto` — передают реальный IP и протокол клиента через прокси\n- В Spring Boot: `server.forward-headers-strategy=native` или `server.forward-headers-strategy=framework` для корректной обработки этих заголовков\n- В Docker\u002FKubernetes **Ingress Controller** (Nginx Ingress, Traefik) выполняет роль reverse proxy\n- **Envoy** (используется в Istio service mesh) — современный reverse proxy для микросервисной архитектуры\n\n### Вывод\n\nForward Proxy защищает и скрывает клиента, Reverse Proxy защищает и масштабирует серверы. В современной инфраструктуре reverse proxy — обязательный компонент production-окружения, обеспечивающий балансировку, SSL-терминацию, кэширование и защиту.\n\n> **На собеседовании:** чётко разделяйте forward proxy (со стороны клиента) и reverse proxy (со стороны сервера). Часто спрашивают практически: как настроить Nginx перед Spring Boot, зачем нужен `X-Forwarded-For`, как работает SSL-терминация. Бонус — упомянуть Envoy\u002FIstio в контексте service mesh.","","middle",[15,16,17,18,19,20,21],"proxy","reverse-proxy","кэширование","nginx","tls-терминация","сети","балансировка",[],null,{"title":25,"description":26,"ogTitle":27,"ogDescription":28,"keywords":29,"schemaAnswer":36,"featuredSnippetReady":37},"Proxy vs Reverse Proxy — Forward Proxy и Nginx Reverse Proxy — Gymterview","Forward Proxy — посредник на стороне клиента (анонимность, фильтрация). Reverse Proxy — перед серверами (балансировка, TLS-терминация, кэширование). Пример конфигурации Nginx.","Proxy и Reverse Proxy — зачем нужны и чем отличаются","Forward Proxy — между клиентом и Интернетом (анонимность, фильтрация). Reverse Proxy (Nginx) — перед backend: балансировка, SSL-терминация, кэширование, защита.",[30,31,32,33,34,35],"Proxy vs Reverse Proxy","Forward Proxy","Reverse Proxy Nginx","балансировка нагрузки","TLS-терминация","X-Forwarded-For","Forward Proxy — посредник между клиентом и сервером (анонимность, кэширование, фильтрация). Reverse Proxy — посредник перед backend-серверами: балансировка нагрузки (round-robin, least connections), SSL\u002FTLS-терминация, кэширование статики, сжатие, защита. Типичная схема: Nginx (reverse proxy, SSL) → Spring Boot (API) → PostgreSQL. Заголовки X-Forwarded-For передают реальный IP клиента.",true]