Como configurar um proxy reverso com Nginx na frente do Apache imprimir

  • 0

Proxy Reverso com Nginx na frente do Apache: o guia da Sensei 🧘

Oi! Eu sou a Sensei da GeHost, e hoje vamos falar sobre um tema que parece assustador de longe, mas é bem tranquilo quando a gente entende a lógica por trás: colocar o Nginx na frente do Apache, funcionando como um "proxy reverso".

Antes de mais nada, um recado importante: essa configuração mexe diretamente no servidor web (arquivos de configuração, portas, serviços) e normalmente é feita em ambientes com acesso de administrador do servidor (como um VPS ou servidor dedicado). Se você está em um plano de hospedagem compartilhada, esse tipo de ajuste geralmente não é feito pelo próprio cliente — nesse caso, o ideal é consultar o suporte ou verificar no seu painel quais recursos estão disponíveis para o seu plano específico. De qualquer forma, entender o conceito é sempre útil, então vamos lá! 💛

O que é isso, afinal?

Imagine o Apache como um funcionário muito competente, mas que se atrapalha um pouco quando muita gente chega ao mesmo tempo pedindo atenção. O Nginx, por outro lado, é excelente em "recepção": ele lida super bem com muitas conexões simultâneas, arquivos estáticos (imagens, CSS, JS) e ainda consegue servir como uma camada de cache e segurança.

Quando colocamos o Nginx na frente do Apache, ele passa a ser o primeiro a receber todas as requisições dos visitantes. Ele então decide: "isso eu resolvo sozinho" (por exemplo, uma imagem) ou "isso eu repasso pro Apache processar" (como uma página PHP dinâmica). Essa combinação é conhecida como proxy reverso.

💡 Dica da Sensei: pense no Nginx como o recepcionista do prédio e o Apache como o especialista lá dentro. O visitante bate na porta, o recepcionista atende rapidinho e só chama o especialista quando realmente precisa.

Por que fazer isso?

  • Performance: o Nginx entrega arquivos estáticos muito mais rápido que o Apache.
  • Menos consumo de memória: o Nginx aguenta muitas conexões abertas usando poucos recursos.
  • Flexibilidade: dá pra usar módulos e configurações específicas do Apache (como o .htaccess) sem abrir mão da robustez do Nginx na entrada.

Passo a passo da configuração

1. Instale o Nginx no servidor

O primeiro passo é ter o Nginx instalado ao lado do Apache no mesmo servidor. Isso normalmente é feito via linha de comando, usando o gerenciador de pacotes da distribuição Linux utilizada (por exemplo, apt em sistemas baseados em Debian/Ubuntu, ou yum/dnf em sistemas baseados em CentOS/RHEL).

2. Mude a porta do Apache

Como o Nginx vai "ocupar" a porta 80 (HTTP) e, se aplicável, a 443 (HTTPS) para atender os visitantes, o Apache precisa ser configurado para escutar em outra porta interna — algo como 8080, por exemplo. Essa mudança geralmente é feita no arquivo de configuração de portas do Apache (o famoso Listen) e também nos arquivos de VirtualHosts, que precisam apontar para essa nova porta.

⚠️ Atenção: depois de mudar a porta, reinicie o serviço do Apache para que a alteração entre em vigor. Um erro comum aqui é esquecer de atualizar TODOS os VirtualHosts para a nova porta.

3. Configure o Nginx como proxy reverso

Agora é a vez de criar (ou editar) o arquivo de configuração do site no Nginx, indicando que ele deve "repassar" as requisições para o Apache, que está escutando na porta interna definida no passo anterior. As diretivas principais nesse bloco costumam incluir:

  • proxy_pass — indica para onde o Nginx deve encaminhar a requisição (o endereço interno e a porta do Apache).
  • proxy_set_header — repassa informações importantes da requisição original, como o host acessado e o IP real do visitante, para que o Apache "enxergue" corretamente quem está pedindo a página.

Sem esses cabeçalhos, aplicações que dependem do IP do visitante (como sistemas de log ou proteção contra abusos) podem passar a enxergar sempre o mesmo endereço — o do próprio servidor — em vez do visitante real. Por isso esse passo é tão importante!

4. Teste a configuração antes de aplicar

Todo bom administrador de servidor testa a sintaxe da configuração antes de reiniciar o serviço "pra valer". O Nginx tem um comando próprio de teste que aponta erros de sintaxe sem derrubar o site no ar. Só depois de um teste positivo é que se recarrega o serviço.

5. Reinicie os serviços e valide

  1. Reinicie (ou recarregue) o serviço do Apache, já escutando na nova porta interna.
  2. Reinicie (ou recarregue) o serviço do Nginx, já configurado como proxy reverso.
  3. Acesse o site pelo navegador normalmente, como qualquer visitante faria.
  4. Verifique se as páginas carregam corretamente e se não há erros de "Bad Gateway" (502), que costumam indicar que o Nginx não conseguiu se comunicar com o Apache.
💡 Dica da Sensei: se aparecer erro 502, quase sempre é porque o Apache não está rodando, está escutando na porta errada, ou o firewall está bloqueando a comunicação interna entre os dois serviços. Comece checando esses três pontos.

6. E o SSL/HTTPS?

Uma prática comum é deixar o Nginx responsável por lidar com o certificado SSL (fazendo o chamado "SSL termination"), repassando o tráfego já decodificado para o Apache internamente via HTTP simples. Isso simplifica a administração dos certificados, já que fica tudo centralizado em um único lugar.

Cuidados importantes

  • Faça backup das configurações originais do Apache e do Nginx antes de começar qualquer alteração.
  • Teste em horário de baixo movimento, para minimizar o impacto caso algo precise de ajuste fino.
  • Documente as mudanças de porta e os arquivos alterados, para facilitar manutenções futuras.
💛 Palavra final da Sensei: configurar um proxy reverso é um ótimo passo para quem quer ganhar performance, mas envolve acesso avançado ao servidor. Se você tiver qualquer dúvida sobre o que é possível fazer no seu plano ou precisar de ajuda nessa configuração, não hesite em chamar o suporte da GeHost — estamos aqui para isso!

Esta resposta lhe foi útil?

« Retornar