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.

Reverse proxy na frente da aplicação, recebendo usuários e encaminhando tráfego para servidores internos, com destaque para load balancer, cache, HTTPS e proteção.

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:

FLUXOTEXTO
Usuário
   ↓
Reverse proxy
   ↓
Servidor da aplicação
   ↓
Reverse proxy
   ↓
Usuário
Fluxo de reverse proxy: usuário chama o domínio público, o reverse proxy recebe a requisição e encaminha para o servidor da aplicação.
REVERSE PROXY · PORTA DE ENTRADA DA APLICAÇÃO

Para o usuário, parece que a resposta veio diretamente do reverse proxy. Ele não precisa saber onde o backend realmente está.

Exemplo:

EXEMPLOTEXTO
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:

ROTASTEXTO
/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:

PROXY COMUMTEXTO
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:

REVERSE PROXYTEXTO
Cliente → reverse proxy → servidores internos
Comparação entre proxy comum, que representa o cliente, e reverse proxy, que representa os servidores internos.
CLIENTE X SERVIDOR · QUEM O PROXY REPRESENTA

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:

LOAD BALANCERTEXTO
                    → 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:

REVERSE PROXYTEXTO
Usuário → reverse proxy → Servidor 1
Load balancer distribuindo tráfego entre três servidores, enquanto reverse proxy também pode funcionar com apenas um servidor.
FUNÇÃO PRINCIPAL · DISTRIBUIR X CONTROLAR ENTRADA

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.

SEGURANÇATEXTO
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:

HOJETEXTO
Reverse proxy → Servidor A

Amanhã:

AMANHÃTEXTO
                 → 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.
Vantagens do reverse proxy agrupadas em segurança, flexibilidade e desempenho, incluindo WAF, rate limit, cache e HTTPS.
SEGURANÇA · FLEXIBILIDADE · DESEMPENHO

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:

HTTPSTEXTO
Usuário ──HTTPS──> Reverse proxy ──HTTP/HTTPS──> Backend
Reverse proxy terminando HTTPS na borda e encaminhando para o backend por HTTP ou HTTPS interno.
SSL/TLS TERMINATION · HTTPS NA BORDA

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:

FULL PROXYTEXTO
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:

NGINXCONFIG
server {
    listen 80;
    server_name marcelomurilo.com;

    location / {
        proxy_pass http://localhost:3000;
    }
}

Quando alguém acessa:

ACESSOHTTP
http://marcelomurilo.com

O NGINX encaminha internamente para:

BACKENDHTTP
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.

NGINX, Cloudflare e F5 BIG-IP como ferramentas que podem atuar como reverse proxy, load balancer, cache, WAF e controle avançado de tráfego.
NGINX · CLOUDFLARE · F5 BIG-IP

SEÇÃO 09

Ideia principal

A ideia principal é:

RESUMO

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.

LER SYSTEM DESIGN VOLTAR AOS CONTEÚDOS