Como configurar um proxy reverso com Nginx na frente da aplicação imprimir

  • 0

Proxy reverso com Nginx: o guia da Sensei pra quem quer colocar uma aplicação atrás do Nginx

Oi! Eu sou a Sensei da GeHost, e hoje vamos falar de um assunto que costuma assustar quem está começando: proxy reverso. Calma, não é nenhum bicho de sete cabeças — é só o Nginx "atendendo a porta" na frente da sua aplicação e repassando as requisições pra ela. Vamos passo a passo, com calma, do jeitinho que eu explicaria pra um amigo. 💙

Antes de começar: este é um procedimento de SSH & Avançado — ou seja, ele exige acesso de terminal (SSH) e, geralmente, permissões administrativas (root/sudo) no servidor onde o Nginx está instalado. Nem todo tipo de hospedagem inclui esse tipo de acesso. Se você não tem certeza se o seu plano permite isso, o caminho mais seguro é consultar o painel.gehost.com.br ou falar com o suporte antes de seguir.

O que é um proxy reverso, afinal?

Imagina o Nginx como um recepcionista muito organizado. Quando alguém acessa o seu domínio, é o Nginx quem atende primeiro — e, em vez de responder ele mesmo, ele encaminha o pedido pra "sala dos fundos", onde a sua aplicação (um site Node.js, uma API, um sistema em outra porta, etc.) está realmente rodando. Depois, ele pega a resposta da aplicação e entrega pro visitante como se tivesse sido ele mesmo o tempo todo.

Isso é super útil quando você tem uma aplicação rodando numa porta "estranha" (tipo 3000 ou 8080) e quer que ela responda normalmente pelo seu domínio, na porta 80/443, com um endereço bonito e, futuramente, com HTTPS.

O que você vai precisar

  • Acesso SSH ao servidor onde o Nginx está instalado (com permissão para editar arquivos de configuração).
  • O Nginx já instalado e funcionando.
  • Sua aplicação já rodando em alguma porta local (por exemplo, 127.0.0.1:3000).
  • Um pouco de paciência — configuração de servidor é sempre um passo de cada vez. 😉

Passo a passo

1. Conecte-se via SSH

Abra seu terminal e conecte no servidor:

ssh usuario@seu-servidor

Se você não sabe o comando exato de conexão do seu ambiente, confira as informações de acesso no seu painel ou peça pro suporte confirmar.

2. Confirme que o Nginx está instalado e rodando

sudo systemctl status nginx

Se aparecer algo como active (running), tudo certo. Se não estiver instalado, é preciso instalar antes de continuar — nesse caso, procure o suporte pra te orientar sobre o ambiente específico do seu servidor.

3. Crie (ou edite) o arquivo de configuração do site

A maioria das instalações Nginx organiza os sites em /etc/nginx/sites-available/. Crie um arquivo novo para o seu domínio:

sudo nano /etc/nginx/sites-available/meusite.com

4. Monte o bloco de proxy reverso

Dentro do arquivo, adicione algo parecido com isto (troque meusite.com e a porta pelo endereço real da sua aplicação):

server {
    listen 80;
    server_name meusite.com www.meusite.com;

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

Vamos entender rapidinho cada linha importante:

  • proxy_pass: pra onde o Nginx vai encaminhar o pedido (o endereço/porta real da sua aplicação).
  • proxy_set_header Host: preserva o domínio original na requisição.
  • X-Real-IP e X-Forwarded-For: garantem que a sua aplicação saiba o IP real de quem está visitando, e não o IP interno do Nginx.
  • X-Forwarded-Proto: informa se a conexão original era HTTP ou HTTPS — importante quando você ativar SSL depois.

5. Ative o site

Em instalações baseadas em Debian/Ubuntu, crie um link simbólico para a pasta de sites ativos:

sudo ln -s /etc/nginx/sites-available/meusite.com /etc/nginx/sites-enabled/

6. Teste a configuração antes de aplicar

Esse passo é essencial — nunca pule ele:

sudo nginx -t

Se aparecer syntax is ok e test is successful, pode seguir em frente. Se der erro, releia com calma o arquivo — geralmente é ponto e vírgula esquecido ou chave sem fechar.

7. Recarregue o Nginx

sudo systemctl reload nginx

Pronto! Agora, ao acessar meusite.com, o Nginx vai repassar tudo pra sua aplicação nos bastidores.

8. E o HTTPS?

Depois que o proxy estiver funcionando em HTTP, o próximo passo natural é ativar o certificado SSL para o domínio, deixando o acesso seguro (com o cadeado). Como a forma de emissão do certificado varia conforme o ambiente, o ideal aqui é consultar o suporte ou a documentação específica do seu servidor pra fazer esse passo com segurança.

Dica da Sensei: sempre que for mexer numa configuração de produção, faça uma cópia do arquivo original antes de editar (cp arquivo arquivo.bak). Assim, se algo sair do esperado, você volta atrás em segundos.

Dica da Sensei: se sua aplicação usa WebSocket (chat em tempo real, notificações etc.), você provavelmente vai precisar adicionar também proxy_http_version 1.1;, proxy_set_header Upgrade $http_upgrade; e proxy_set_header Connection "upgrade"; dentro do bloco location.

Erros comuns (e como respirar fundo e resolver)

  • 502 Bad Gateway: geralmente significa que a aplicação não está rodando na porta configurada, ou travou. Confirme se ela está de pé.
  • Configuração não aplica: confira se você recarregou o Nginx depois da alteração (systemctl reload nginx) e se o link em sites-enabled foi criado corretamente.
  • Domínio não resolve: antes de tudo, confirme que o domínio já está apontando corretamente pro servidor — isso é configurado fora do Nginx.

Precisa de ajuda?

Se em algum momento a coisa ficar complicada ou você não tiver certeza sobre o acesso/permissões do seu ambiente, não force a barra sozinho — fale com o suporte da GeHost ou confira as informações do seu plano no painel.gehost.com.br. Estamos aqui pra ajudar você a chegar lá com segurança. 🌱


Esta resposta lhe foi útil?

« Retornar