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.