Configurando um Proxy Reverso com Nginx na Frente da sua Aplicação
Olá! Eu sou a Sensei da GeHost, e hoje vamos falar sobre um assunto que costuma assustar quem está começando, mas que, com calma, é bem mais simples do que parece: o proxy reverso. Se você tem uma aplicação rodando (Node.js, Python, Java, etc.) numa porta interna do servidor e quer que ela apareça "por trás" de um domínio bonito, com HTTPS e tudo mais, o Nginx como proxy reverso é o caminho certo.
Este é um tópico de SSH & Avançado. Você vai precisar de acesso ao terminal do seu servidor. Se você não tem certeza do que está fazendo, não tem problema nenhum em pedir apoio ao suporte antes de mexer em configurações de servidor.
O que é um proxy reverso, afinal?
Pense no Nginx como um "recepcionista" muito educado. Quando alguém visita o seu domínio, essa pessoa não fala diretamente com a sua aplicação — ela fala com o Nginx primeiro. O Nginx então repassa a conversa para a aplicação (que está rodando internamente, numa porta que o visitante nunca vê) e devolve a resposta como se fosse dele mesmo. Isso te dá:
- Segurança: sua aplicação fica "escondida" atrás do Nginx.
- HTTPS fácil: o certificado SSL fica só no Nginx, e a aplicação nem precisa saber lidar com isso.
- Organização: você pode ter várias aplicações no mesmo servidor, cada uma respondendo por um domínio diferente.
Passo a passo
1. Confirme que sua aplicação está rodando
Antes de mexer no Nginx, garanta que a sua aplicação já está de pé e escutando numa porta local. Por exemplo, se for uma aplicação Node.js na porta 3000, teste com:
curl http://localhost:3000
Se aparecer alguma resposta (mesmo que seja um erro da própria aplicação), ótimo sinal — significa que ela está de pé e escutando.
2. Instale o Nginx (se ainda não tiver)
Em distribuições baseadas em Debian/Ubuntu:
sudo apt update sudo apt install nginx
3. Crie um arquivo de configuração para o seu domínio
O Nginx organiza os sites em arquivos separados. Crie um novo arquivo, substituindo seudominio.com.br pelo domínio real:
sudo nano /etc/nginx/sites-available/seudominio.com.br
E coloque um conteúdo parecido com este dentro do arquivo:
server {
listen 80;
server_name seudominio.com.br www.seudominio.com.br;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
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;
proxy_cache_bypass $http_upgrade;
}
}
Repare que a porta 3000 deve ser trocada pela porta real onde a sua aplicação está escutando.
4. Ative o site
Crie um link simbólico para a pasta de sites ativos:
sudo ln -s /etc/nginx/sites-available/seudominio.com.br /etc/nginx/sites-enabled/
5. Teste a configuração antes de aplicar
Esse passo é essencial — o Nginx tem um comando que verifica se a sintaxe está correta antes de você reiniciar tudo:
sudo nginx -t
Se aparecer syntax is ok e test is successful, pode seguir em frente. Se der erro, releia o arquivo com calma — geralmente é ponto e vírgula esquecido ou chave sem fechar.
6. Recarregue o Nginx
sudo systemctl reload nginx
7. Adicione o HTTPS
Com o proxy funcionando em HTTP, o passo natural seguinte é habilitar o certificado SSL para que o domínio funcione em HTTPS. Ferramentas como o Certbot automatizam bastante esse processo, ajustando a configuração do Nginx para você.
Dica da Sensei: sempre confirme antes que o domínio já está com o DNS apontando corretamente para o servidor. Sem isso, a emissão do certificado SSL não vai funcionar, porque o validador precisa conseguir alcançar o seu servidor pelo domínio.
Erros comuns (e como resolver)
- "502 Bad Gateway": geralmente significa que a aplicação não está rodando na porta configurada, ou caiu. Verifique com o comando
curldo passo 1. - "connection refused": confira se a porta no arquivo do Nginx é exatamente a mesma em que a aplicação está escutando.
- Nginx não recarrega: rode
sudo nginx -tde novo para achar o erro de sintaxe antes de tentar reiniciar.
Precisa de ajuda?
Se em algum momento a configuração ficar confusa ou algo não sair como o esperado, não hesite em acionar o suporte da GeHost — estamos aqui para isso. E lembre-se: qualquer detalhe específico do seu plano ou prazo de atendimento, o lugar certo para conferir é sempre o painel do cliente.
Com paciência e seguindo os passos com calma, você vai ver que colocar um proxy reverso na frente da sua aplicação é um baita passo para deixar seu projeto mais profissional e seguro. Boa configuração! 🙏