Server at DevOps 57 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.