🔀 Cap 10: Proxy Reverso: Roteamento de Microsserviços, SSL Offloading e Reescrita de URLs
🗺️ A Arquitetura de Gateway e Proxy Reverso em Produção
flowchart LR
CLIENTE["👤 Clientes na Internet\n(HTTPS Porta 443)"]
--> |"Único Ponto de Entrada"| PROXY["<b>Proxy Reverso (Nginx / HAProxy)</b>\nTerminação TLS 🔒 | Rate Limiting | WAF"]
PROXY --> |"proxy_pass /api/v1/auth"| AUTH["Auth Service (Porta 3001)"]
PROXY --> |"proxy_pass /api/v1/pedidos"| ORDERS["Orders Service (Porta 3002)"]
PROXY --> |"proxy_pass /"| STATIC["Static Web SPA (Porta 80) ⚡"]
style CLIENTE fill:#ede7f6,stroke:#512da8,stroke-width:1.5px
style PROXY fill:#00897b,stroke:#004d40,stroke-width:2px,color:#ffffff
style AUTH fill:#e1f5fe,stroke:#03a9f4,stroke-width:1.5px
style ORDERS fill:#e8f5e9,stroke:#4caf50,stroke-width:1.5px
style STATIC fill:#fff3e0,stroke:#ff9800,stroke-width:1.5px
📖 Fundamentos e Aplicação
Diferente do Proxy Direto (Forward Proxy) — que protege clientes internos ao acessar a web pública —, o Proxy Reverso (Reverse Proxy) protege e orquestra servidores internos de backend, atuando como o ponto único de entrada (Edge Gateway) da infraestrutura.
1. Funções Críticas do Proxy Reverso:
- Terminação TLS (SSL/TLS Offloading): Descriptografa o tráfego HTTPS na borda da rede, aliviando a CPU dos microsserviços de backend para focarem estritamente na lógica de negócio.
- Roteamento Baseado em Caminho e Host (Path-Based & Host-Based Routing): Direciona
/api/usuariospara um pod e/api/pagamentospara outro. - Preservação de Identidade do Cliente: Encaminhamento obrigatório de cabeçalhos proxy:
X-Forwarded-For: O endereço IP público real do cliente original.X-Forwarded-Proto: O protocolo de entrada (https).X-Forwarded-Host: O host original requisitado.
- Compressão Centralizada (Gzip / Brotli): Redução do tráfego antes do envio pela Internet.