Servidor & DevOps 35 visualizações

Como configurar um proxy reverso para rodar múltiplas aplicações em um VPS

Ver no WHMCS

Como configurar um proxy reverso pra rodar várias aplicações no mesmo VPS 🥋

Fala, guerreiro(a)! Aqui é a Sensei da GeHost. Hoje vamos aprender uma técnica que separa quem só "tem um servidor" de quem realmente sabe usar um VPS: colocar várias aplicações rodando ao mesmo tempo, cada uma no seu domínio ou subdomínio, sem brigar por porta e sem precisar de um servidor pra cada projeto.

O segredo é o proxy reverso. Pensa nele como um "recepcionista" do seu VPS: todo mundo bate na porta 80/443 (HTTP/HTTPS), e é o proxy que decide pra qual aplicação a visita deve ser encaminhada, de acordo com o domínio digitado. Assim, seu blog, sua API e seu sistema interno podem morar lado a lado no mesmo servidor, cada um em sua própria "sala".

💡 Dica da Sensei: este guia é pra quem tem um VPS com acesso root/sudo. Se você usa hospedagem compartilhada (cPanel) da GeHost, o gerenciamento é diferente — nesse caso, fale com a gente pelo painel.gehost.com.br que te orientamos certinho.

O que você vai precisar antes de começar

  • Um VPS ativo com acesso via terminal (SSH), com permissão de administrador (root ou sudo);
  • Suas aplicações já rodando, cada uma numa porta diferente (ex.: app 1 na porta 3000, app 2 na porta 4000);
  • Os domínios ou subdomínios que você quer usar pra cada aplicação, já registrados;
  • Um pouco de paciência — é mais simples do que parece, prometo! 😊

Passo a passo

Passo 1 — Instale o Nginx (o nosso "recepcionista")

O Nginx é o software mais usado pra fazer esse papel de proxy reverso. No terminal do seu VPS, rode:

  1. sudo apt update
  2. sudo apt install nginx
  3. sudo systemctl enable nginx (pra ele iniciar sozinho quando o servidor reiniciar)

Passo 2 — Deixe suas aplicações rodando, cada uma numa porta

Antes do proxy entrar em ação, cada aplicação sua precisa estar de pé, ouvindo numa porta interna (que só o próprio servidor enxerga). Por exemplo:

  • Aplicação A → rodando em 127.0.0.1:3000
  • Aplicação B → rodando em 127.0.0.1:4000

Se você usa Node.js, Python, PHP-FPM ou qualquer outra tecnologia, é só garantir que cada uma "escute" numa porta própria e continue rodando em segundo plano (com PM2, systemd, supervisor, ou o gerenciador de processos da sua preferência).

Passo 3 — Crie um "bloco de servidor" pra cada domínio

Agora é a parte mágica: você vai ensinar o Nginx a reconhecer cada domínio e mandar o tráfego pra porta certa. Crie um arquivo de configuração pra cada aplicação dentro de /etc/nginx/sites-available/. Exemplo pra uma aplicação no domínio seudominio.com.br:

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

    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;
    }
}

Repita esse mesmo modelo pra cada domínio/aplicação, trocando o server_name e a porta do proxy_pass. Depois, ative cada configuração com um link simbólico:

  1. sudo ln -s /etc/nginx/sites-available/seudominio.com.br /etc/nginx/sites-enabled/
💡 Dica da Sensei: pense em cada bloco de servidor como uma "porta de entrada" exclusiva. O visitante nem imagina que, por trás, é tudo o mesmo VPS cuidando de tudo — organização é poder!

Passo 4 — Aponte o DNS de cada domínio pro seu VPS

Pra o proxy funcionar, o domínio precisa "chegar" no seu servidor. No painel de DNS de cada domínio, crie um registro A apontando para o IP do seu VPS (você encontra esse IP no seu painel de gerenciamento do servidor).

Passo 5 — Teste a configuração e recarregue o Nginx

Antes de aplicar de vez, sempre teste se não tem nenhum erro de digitação:

  1. sudo nginx -t (se aparecer "syntax is ok" e "test is successful", beleza!)
  2. sudo systemctl reload nginx

Passo 6 — Ative o certificado SSL (HTTPS) pra cada domínio

Site sem cadeado hoje em dia assusta o visitante. Com o Nginx já configurado, use o Certbot pra emitir um certificado SSL gratuito automaticamente pra cada domínio:

  1. sudo apt install certbot python3-certbot-nginx
  2. sudo certbot --nginx -d seudominio.com.br

Repita o comando trocando o domínio pra cada aplicação. O Certbot já ajusta o bloco do Nginx automaticamente pra servir em HTTPS.

Prontinho! E agora?

Com isso, seu VPS vira um verdadeiro dojo: várias aplicações treinando (rodando) ao mesmo tempo, cada uma na sua própria sala, todas recebendo visitas através de um único "recepcionista" — o Nginx.

💡 Dica da Sensei: sempre que adicionar uma aplicação nova, o caminho é o mesmo: nova porta interna → novo bloco de servidor → novo registro de DNS → certbot pro SSL. Vira rotina rapidinho!

Erros comuns (e como evitar)

  • Esquecer de testar com nginx -t: um erro de sintaxe pode derrubar TODOS os sites configurados, não só o novo. Sempre teste antes de recarregar.
  • Duas aplicações na mesma porta: cada aplicação interna precisa da sua própria porta exclusiva.
  • DNS ainda não propagado: depois de apontar o registro A, pode levar um tempo até funcionar em todo lugar — tenha paciência antes de "achar que quebrou".

Precisa de uma mãozinha?

Se enrolou em algum passo ou prefere que a gente configure isso pra você, é só chamar o suporte da GeHost pelo painel.gehost.com.br. Lembrando que toda entrega da GeHost já vem com 30 dias de suporte gratuito — aproveita essa janela pra tirar qualquer dúvida sem custo extra.

🥋 A Sensei sempre diz: organização de servidor é como treino de kata — parece repetitivo, mas é isso que evita a bagunça na hora que mais importa. Bons deploys!
Precisa de Ajuda?

Nossa equipe está pronta para resolver suas dúvidas.