Nginx como Proxy Reverso na VPS: Guia Prático

Tempo de leitura: 3 minutos

Quando você roda uma aplicação em Node.js, Python ou outra linguagem numa porta interna (tipo 3000 ou 8000), não é uma boa prática expor essa porta direto pra internet. O jeito certo é colocar o Nginx na frente, funcionando como proxy reverso: ele recebe as requisições na porta 80/443 e repassa pra aplicação por trás.

Se você ainda não tem onde rodar essa aplicação, o Cloud VPS Brasil da Rubfy já sobe pronto pra esse tipo de configuração, com IP dedicado e ativação imediata.

Por que usar proxy reverso

  • Você expõe só as portas 80 e 443, reduzindo a superfície de ataque do servidor.
  • O Nginx cuida do certificado SSL numa camada só, mesmo que a aplicação por trás não fale HTTPS.
  • Dá pra rodar várias aplicações no mesmo servidor, cada uma respondendo por um domínio diferente.
  • O Nginx serve arquivos estáticos direto, sem sobrecarregar a aplicação com isso.

Instalando o Nginx

sudo apt update
sudo apt install nginx -y

Em distribuições baseadas em CentOS/AlmaLinux, use dnf install nginx -y.

Criando o bloco de configuração

Cada site/aplicação ganha um arquivo próprio dentro de /etc/nginx/sites-available/. Crie um novo:

sudo nano /etc/nginx/sites-available/minha-app

E cole a configuração básica de proxy reverso, trocando o domínio e a porta pelos seus:

server {
    listen 80;
    server_name meudominio.com.br;

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

Os cabeçalhos Upgrade e Connection são importantes se sua aplicação usar WebSocket. O X-Real-IP e o X-Forwarded-For garantem que a aplicação enxergue o IP real de quem acessou, e não o IP interno do proxy.

Ativando o site

Crie um link simbólico pra pasta sites-enabled, teste a configuração e reinicie o Nginx:

sudo ln -s /etc/nginx/sites-available/minha-app /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

O nginx -t testa a sintaxe antes de aplicar. Nunca pule esse passo: um erro de configuração pode derrubar todos os sites que já estavam funcionando no mesmo Nginx.

Adicionando HTTPS

Com o proxy funcionando em HTTP, o próximo passo natural é o certificado SSL grátis via Certbot. O passo a passo completo está em Let’s Encrypt na VPS Linux: SSL grátis com Certbot. Depois de emitido, o Certbot ajusta esse mesmo arquivo de configuração automaticamente pra redirecionar tudo pra HTTPS.

Rodando mais de uma aplicação no mesmo servidor

Basta repetir o processo: um arquivo novo em sites-available pra cada domínio, cada um apontando pra sua própria porta interna (3000, 3001, 8000, e assim por diante). O Nginx identifica qual aplicação servir pelo server_name de cada bloco.

Conclusão

Com o Nginx como proxy reverso, você mantém a aplicação isolada numa porta interna, ganha SSL centralizado e ainda consegue hospedar vários projetos no mesmo servidor de forma organizada.

Rode isso numa VPS de verdade

Proxy reverso bem configurado só entrega o esperado com rede estável por trás. O Cloud VPS Brasil da Rubfy roda com Intel Xeon Gold, SSD NVMe, tráfego ilimitado e suporte humano de verdade via WhatsApp e ticket, com preço fixo em reais.