ENGENHARIA DE SOFTWARE · LEITURA DE ~8 MIN
Reverse Proxy x
Load Balancer
Um reverse proxy é um servidor que fica na frente da sua aplicação e recebe as requisições dos usuários antes que elas cheguem ao backend.
SEÇÃO 01
O que é reverse proxy
Um reverse proxy é um servidor que fica na frente da sua aplicação e recebe as requisições dos usuários antes que elas cheguem ao backend.
O fluxo fica assim:
Usuário
↓
Reverse proxy
↓
Servidor da aplicação
↓
Reverse proxy
↓
Usuário
Para o usuário, parece que a resposta veio diretamente do reverse proxy. Ele não precisa saber onde o backend realmente está.
Exemplo:
marcelomurilo.com
↓
Cloudflare ou NGINX
↓
localhost:3000
O navegador acessa marcelomurilo.com, mas internamente o reverse proxy encaminha a requisição para sua aplicação rodando na porta 3000.
O reverse proxy pode decidir para onde enviar cada requisição:
/api → servidor backend
/images → servidor de arquivos
/chat → serviço de inteligência artificial
/admin → outro servidor
SEÇÃO 02
Reverse proxy x proxy comum
Um proxy tradicional atua em nome do cliente:
Cliente → proxy → internet
Ele pode esconder o IP do cliente ou controlar quais sites ele acessa.
Já o reverse proxy atua em nome do servidor:
Cliente → reverse proxy → servidores internos
Ele esconde e protege os servidores internos.
SEÇÃO 03
Reverse proxy x load balancer
Eles são parecidos, mas não são exatamente a mesma coisa.
Um load balancer tem como função principal distribuir tráfego entre vários servidores:
→ Servidor 1
Usuários → Balanceador → Servidor 2
→ Servidor 3
Isso evita que um único servidor fique sobrecarregado.
Um reverse proxy pode funcionar mesmo com apenas um backend:
Usuário → reverse proxy → Servidor 1
Sua função é mais ampla: encaminhar, proteger, inspecionar, armazenar cache e controlar o tráfego.
Na prática, ferramentas como NGINX, Cloudflare e F5 podem atuar ao mesmo tempo como reverse proxy e load balancer.
SEÇÃO 04
Vantagens
Segurança
O usuário não acessa diretamente o servidor interno.
Internet → reverse proxy → rede interna
Isso permite:
- esconder IPs e portas dos servidores;
- bloquear IPs maliciosos;
- limitar quantidade de requisições;
- aplicar firewall de aplicação;
- reduzir ataques DDoS;
- inspecionar requisições antes de encaminhá-las.
Mas ele não torna automaticamente a aplicação segura. Vulnerabilidades no backend ainda precisam ser corrigidas.
Flexibilidade
Como o cliente conhece apenas o endereço do proxy, você pode alterar sua infraestrutura sem mudar o endereço público.
Hoje:
Reverse proxy → Servidor A
Amanhã:
→ Servidor A
Reverse proxy → Servidor B
→ Servidor C
O usuário continua acessando o mesmo domínio.
Desempenho
O reverse proxy pode:
- armazenar respostas em cache;
- comprimir arquivos;
- encerrar conexões HTTPS;
- reutilizar conexões;
- entregar arquivos estáticos;
- encaminhar tráfego para o servidor mais adequado.
Por exemplo, se uma imagem já estiver no cache, ele pode devolvê-la sem consultar sua aplicação novamente.
SEÇÃO 05
SSL/TLS termination
O reverse proxy pode cuidar do HTTPS:
Usuário ──HTTPS──> Reverse proxy ──HTTP/HTTPS──> Backend
O proxy recebe e descriptografa a conexão segura. Isso tira parte desse trabalho dos servidores de aplicação.
Em ambientes mais seguros, também é possível manter HTTPS entre o proxy e o backend.
SEÇÃO 06
Full proxy
O texto também menciona o full proxy.
Ele cria duas conexões completamente separadas:
Cliente ← conexão 1 → Proxy ← conexão 2 → Servidor
Não existe uma conexão TCP única atravessando tudo. O proxy encerra a conexão do cliente e cria outra conexão independente com o servidor.
Isso permite que ele:
- inspecione o tráfego;
- altere headers;
- aplique regras;
- bloqueie requisições;
- escolha o backend;
- controle cada lado da comunicação separadamente.
SEÇÃO 07
Exemplo com NGINX
Uma configuração simples seria:
server {
listen 80;
server_name marcelomurilo.com;
location / {
proxy_pass http://localhost:3000;
}
}
Quando alguém acessa:
http://marcelomurilo.com
O NGINX encaminha internamente para:
http://localhost:3000
O usuário nunca precisa saber que a aplicação está na porta 3000.
SEÇÃO 08
Onde entram F5, NGINX e Cloudflare
NGINX é um software que pode funcionar como reverse proxy, load balancer, cache e servidor web.
Cloudflare funciona como um reverse proxy distribuído na internet. O domínio aponta para a Cloudflare, que filtra e encaminha as requisições para seu servidor de origem.
F5 BIG-IP é uma solução mais corporativa, usada para controle avançado de tráfego, segurança, balanceamento e inspeção profunda.
SEÇÃO 09
Ideia principal
A ideia principal é:
O reverse proxy é a porta de entrada pública da aplicação. Ele recebe o tráfego, aplica regras e encaminha cada requisição ao servidor interno correto.
FIM · OBRIGADO POR LER
Quer ver onde isso entra na arquitetura completa?
O artigo de System Design mostra como cache, banco de dados, filas, disponibilidade e tráfego se encaixam em uma aplicação real.