Criar um Proxy Reverso com Nginx no Linux

Um proxy reverso é uma forma poderosa de redirecionar requisições de entrada para um ou mais servidores internos, ajudando a proteger, distribuir e organizar o tráfego de aplicações web. O Nginx, além de servidor web, é excelente para essa tarefa.

Neste post, você vai ver como configurar rapidamente um proxy reverso com Nginx em um servidor Linux.


O que é um Proxy Reverso?

Um proxy reverso age como intermediário entre os usuários da internet e seus servidores de aplicação. Ele recebe as requisições e as repassa internamente, sem que o cliente saiba qual servidor está respondendo.

📌 Exemplos de uso:

  • Redirecionar tráfego para múltiplos serviços (ex: API, frontend, admin)
  • Ocultar IPs e portas internas
  • Adicionar cache, compressão ou HTTPS na entrada

⚙️ Pré-requisitos

  • Nginx instalado (pode ser via apt, yum, dnf, etc.)
  • Um backend rodando (por exemplo, um app Node.js ou Python em localhost:3000)
  • Acesso root ou sudo

Passo a Passo: Configurando o Proxy Reverso

1. Instale o Nginx

No Debian/Ubuntu:

sudo apt update && sudo apt install nginx

No RHEL/CentOS:

sudo yum install nginx

2. Crie ou edite o arquivo de configuração

Vamos criar um site proxy que escuta na porta 80 e repassa para localhost:3000.

sudo nano /etc/nginx/sites-available/proxyapp

Conteúdo:

server {
listen 80;
server_name meudominio.com;

location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

3. Habilite a configuração

No Debian/Ubuntu:

sudo ln -s /etc/nginx/sites-available/proxyapp /etc/nginx/sites-enabled/

Verifique se a configuração está válida:

sudo nginx -t

Reinicie o Nginx:

sudo systemctl restart nginx

4. Acesse no navegador

Se estiver rodando um app em localhost:3000, agora ele estará acessível publicamente via http://meudominio.com/.


Extras recomendados

  • Use HTTPS com Let’s Encrypt + Certbot
  • Configure cache reverso com proxy_cache
  • Faça load balance entre múltiplos backends
  • Adicione autenticação básica (auth_basic)

Conclusão

O Nginx torna muito simples a criação de um proxy reverso robusto e eficiente, ideal para microsserviços, containers, APIs e mais. Com poucos passos, você pode organizar melhor sua infraestrutura e manter seus backends protegidos.

Se quiser, posso mostrar como fazer isso com Docker, ou com SSL automático usando Let’s Encrypt. Quer seguir por esse caminho?