Proxy reverso — o que é e como funciona (nginx)
O servidor que fica na frente do seu servidor de verdade — e por que quase todo site em produção tem um.
Um proxy reverso é um servidor que recebe todas as requisições primeiro, e as repassa pro servidor de aplicação de verdade — o cliente nunca fala diretamente com o servidor que roda seu Next.js/Rails. Isso parece uma etapa extra sem necessidade, mas resolve vários problemas de uma vez.
Clique em “Reproduzir fluxo” para ver a requisição passo a passo.
O que um proxy reverso resolve
TLS/HTTPS num lugar só → nginx cuida do certificado; a app roda HTTP simples internamente
Servir arquivo estático → nginx entrega imagem/CSS direto, sem acionar a app pra isso
Compressão (gzip) → reduz o tamanho da resposta antes de sair pro cliente
Esconder a estrutura interna → o cliente nunca sabe em qual porta/IP a app real está rodando
Roteamento por caminho → /api/* vai pra um serviço, /* vai pro appUm nginx.conf básico
server {
listen 443 ssl;
server_name howtodev.site;
ssl_certificate /etc/ssl/certs/howtodev.crt;
ssl_certificate_key /etc/ssl/private/howtodev.key;
location / {
proxy_pass http://127.0.0.1:3000; # repassa pro Next.js rodando localmente
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location /api/ {
proxy_pass http://127.0.0.1:3001; # /api vai pra um serviço diferente
}
}proxy_set_header X-Real-IP importa porque, sem isso, a aplicação veria toda requisição vindo do próprio nginx (localhost) — esse header preserva o IP real de quem fez a requisição original, útil pra rate limiting e logs de auditoria.
Exercício
Por que faz sentido o nginx cuidar do certificado TLS, em vez de configurar HTTPS diretamente dentro do processo Next.js/Rails?