Iniciante Fundamentos

Proxy reverso

Um proxy reverso recebe a requisição do usuário e a repassa para outra aplicação rodando nos bastidores, como um servidor Node ou Python. É um dos usos mais comuns do Nginx.

proxy_pass

A diretiva proxy_pass define para onde encaminhar:

server {
    listen 80;
    server_name app.exemplo.com;

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

Aqui o Nginx atende na porta 80 e repassa tudo para a aplicação local na porta 3000.

Passando cabeçalhos

A aplicação de trás precisa saber dados originais da requisição. Use proxy_set_header:

location / {
    proxy_pass http://127.0.0.1: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;
}

Sem isso, a aplicação veria sempre o IP do Nginx, não o do visitante real.

Por que usar

O proxy reverso traz vantagens:

  • Esconde a aplicação interna do mundo externo.
  • Permite servir HTTPS e arquivos estáticos pelo Nginx.
  • Facilita colocar várias aplicações atrás de um único endereço.

Resumo

Com proxy_pass o Nginx encaminha requisições para outra aplicação. Use proxy_set_header para repassar host e IP originais. É a base para servir aplicações modernas com segurança.