Um proxy atua como intermediário para requisições. Um forward proxy fica em frente aos clientes (representando-os para servidores), enquanto um reverse proxy fica em frente aos servidores (representando-os para clientes) — manipulando balanceamento de carga, cache, segurança e muito mais. Reverse proxies são componentes-chave do design de sistemas.
Forward proxy vs reverse proxy
FORWARD PROXY → sits in front of CLIENTS, forwarding their requests to servers:
Client → FORWARD PROXY → Internet/Server
→ represents the CLIENT (hides client identity); for filtering, caching, anonymity,
access control (e.g. corporate proxies)
REVERSE PROXY → sits in front of SERVERS, receiving requests on their behalf:
Client → REVERSE PROXY → Backend servers
→ represents the SERVERS (clients don't see the backend); the common system-design component
O que um reverse proxy faz
✓ LOAD BALANCING → distribute requests across backend servers
✓ CACHING → cache responses (reduce backend load)
✓ SSL TERMINATION → handle HTTPS encryption/decryption (offload from backends)
✓ SECURITY → hide backend servers; a single point for filtering, WAF, DDoS protection
✓ COMPRESSION, request routing, rate limiting
→ tools: NGINX, HAProxy, Envoy; also CDNs and API gateways are forms of reverse proxies
Por que reverse proxies importam
✓ Centralize cross-cutting concerns (load balancing, SSL, caching, security) at the edge
✓ Hide and protect the backend (clients only see the proxy)
✓ A single entry point → simpler client access, flexible backend changes
→ a fundamental building block of scalable, secure web architectures.
Por que isso importa
Compreender proxies e reverse proxies é valioso porque reverse proxies são um bloco fundamental de arquiteturas web escaláveis e seguras, portanto é importante conhecimento de design de sistemas.
Compreender a distinção — um forward proxy em frente aos clientes (representando-os, para filtragem e controle de acesso) versus um reverse proxy em frente aos servidores (representando-os para clientes) — esclarece esses conceitos relacionados mas diferentes, sendo o reverse proxy o componente comum em design de sistemas.
Compreender o que um reverse proxy faz — balanceamento de carga (distribuição de requisições), cache (redução da carga backend), terminação SSL (manipulação de HTTPS, descarregamento de criptografia dos backends), segurança (ocultação de servidores backend, fornecimento de um ponto único para filtragem, WAF e proteção DDoS), e compressão, roteamento e rate limiting — esclarece as muitas preocupações transversais que manipula na borda.
Compreender por que reverse proxies importam — centralizar preocupações transversais na borda, ocultar e proteger o backend (clientes vendo apenas o proxy), e fornecer um ponto único de entrada (acesso mais simples, mudanças flexíveis no backend) — explica seu papel fundamental em arquiteturas web.
Reconhecer que balanceadores de carga, CDNs e API gateways são essencialmente formas de reverse proxies conecta esses conceitos relacionados.
Reverse proxies (NGINX, HAProxy, Envoy) são onipresentes em sistemas reais, manipulando o balanceamento de carga, cache, SSL e segurança que arquiteturas web escaláveis precisam.
Como reverse proxies são um bloco fundamental de arquiteturas web escaláveis e seguras (centralizando balanceamento de carga, cache, SSL e segurança enquanto ocultam backends), e como compreender a distinção forward/reverse e o que reverse proxies fazem é importante para design de sistemas, compreender proxies e reverse proxies é valioso, conhecimento de design de sistemas praticamente relevante — um componente fundamental de arquiteturas web, conectando a balanceadores de carga, CDNs e API gateways, e central para projetar sistemas escaláveis e seguros com manipulação apropriada de preocupações transversais na borda.
