Como configurar um proxy reverso Nginx na frente de uma aplicação no VPS
Olá, viajante da tecnologia! Seja bem-vindo(a) ao seu novo passo rumo ao controle total da sua aplicação. Aqui, na GeHost, acreditamos que todo mundo pode aprender a dominar o servidor — mesmo que seu primeiro contato com o terminal tenha sido com um erro de digitação. 😄
Hoje vamos aprender juntos como configurar um proxy reverso com Nginx na frente de uma aplicação rodando no seu VPS. Isso quer dizer: o Nginx vai receber as requisições do mundo exterior e redirecionar para o seu app (como um site em Node.js, Python, ou qualquer outra coisa que você esteja testando).
Este guia é feito com carinho para quem está começando — sem pressa, sem jargões desnecessários. Vamos em passos simples, como se fosse uma conversa entre amigos. 💬
Antes de começar: o que você precisa ter
Antes de tocar no código, verifique se você tem:
- Um VPS com acesso root (ou usuário com privilégios sudo).
- Um domínio apontando para o IP do seu VPS (via DNS).
- Uma aplicação já rodando em alguma porta (ex: 3000, 8080).
- Conhecimento básico de terminal (comandos como
sudo,nano,systemctl).
Dica do Sensei: Se você não tem certeza se seu VPS está configurado, entre no painel do cliente e verifique os dados do seu plano. Caso precise de ajuda, nosso suporte está disponível nos primeiros 30 dias após a entrega.
Passo 1: Instale o Nginx
Abra o terminal e atualize o sistema:
sudo apt update && sudo apt upgrade -y
Em seguida, instale o Nginx:
sudo apt install nginx -y
Após a instalação, verifique se o serviço está rodando:
sudo systemctl status nginx
Se estiver ativo (vermelho ou verde, dependendo do tema), você está no caminho certo. 🎉
Passo 2: Configure o arquivo de site do Nginx
Vamos criar um novo arquivo de configuração para o seu domínio. Substitua seudominio.com pelo seu domínio real.
sudo nano /etc/nginx/sites-available/seudominio.com
Coloque o seguinte conteúdo dentro do arquivo:
server {
listen 80;
server_name seudominio.com www.seudominio.com;
location / {
proxy_pass http://127.0.0.1:3000; # Substitua 3000 pela porta da sua app
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;
}
}
Importante: Altere 3000 para a porta em que sua aplicação está rodando. Se não souber, verifique com o comando netstat -tulnp | grep :porta.
Passo 3: Ative o site
Por padrão, o Nginx só lê arquivos do diretório sites-enabled. Vamos criar um link simbólico:
sudo ln -s /etc/nginx/sites-available/seudominio.com /etc/nginx/sites-enabled/
Depois, teste a configuração:
sudo nginx -t
Se aparecer "syntax is ok" e "test is successful", tudo certo! 🎯
Passo 4: Reinicie o Nginx
Após a validação, reinicie o serviço:
sudo systemctl restart nginx
Pronto! Agora o Nginx está ouvindo na porta 80 e redirecionando para sua aplicação.
Passo 5: Verifique se está funcionando
Abra seu navegador e acesse http://seudominio.com. Se tudo estiver certo, você deverá ver sua aplicação rodando!
Se não funcionar:
- Verifique se a aplicação está rodando (use
ps aux | grep nome-da-app). - Confira se a porta está aberta:
sudo ufw status(se usar UFW). - Verifique os logs do Nginx:
sudo tail -f /var/log/nginx/error.log.
Dica do Sensei: Se algo não funcionar, não se desespere. O erro é só um sinal de que algo precisa de ajuste — e isso é parte do aprendizado. Acesse o painel do cliente ou entre em contato com o suporte. Estamos aqui para ajudar.
Passo 6 (opcional): Adicione HTTPS com Let's Encrypt
Para deixar seu site seguro, você pode usar o certificado gratuito do Let's Encrypt. Instale o certbot:
sudo apt install certbot python3-certbot-nginx -y
Execute:
sudo certbot --nginx -d seudominio.com -d www.seudominio.com
O certbot fará todo o trabalho de configuração automática. Após isso, seu site estará rodando em https:// — e o Nginx já estará preparado para redirecionar automaticamente HTTP → HTTPS.
Conclusão: Você está no controle
Parabéns! Você acabou de configurar um proxy reverso com Nginx — uma das ferramentas mais poderosas no mundo da infraestrutura. Agora, seu app está protegido, escalável e acessível pelo mundo inteiro.
Se quiser ir além, explore:
- Logs de acesso:
/var/log/nginx/access.log - Cache estático (arquivos CSS, JS, imagens)
- Balanceamento de carga (para múltiplas instâncias)
Lembre-se: cada grande sistema começou com um simples sudo systemctl restart nginx. Você está no caminho certo. 💪
Se precisar de ajuda, não hesite. O suporte da GeHost está aqui para você — e o nosso grupo, G e Soluções e Eventos LTDA (CNPJ: 46.647.904/0001-04), acredita que tecnologia deve ser acessível, segura e humana.
Até a próxima, com código e coração. 🌟