Reverse Proxy com Nginx na frente do Apache: seu site rápido, seguro e sem dor de cabeça
Oi! Aqui é a Sensei da GeHost 🧘♀️ Hoje vamos falar de um tema que costuma assustar só pelo nome, mas que — prometo — faz muito mais sentido do que parece. Vamos entender o que é um proxy reverso, por que colocar o Nginx na frente do Apache é uma combinação tão querida por quem cuida de servidores, e como configurar isso passo a passo.
Antes de mais nada: essa configuração mexe direto no servidor (arquivos de sistema, portas, serviços) e exige acesso root/administrador via SSH. Ela é para ambientes de VPS ou servidor dedicado. Se o seu plano é hospedagem compartilhada (cPanel), esse tipo de ajuste normalmente não está disponível para o cliente configurar diretamente — nesse caso, é só chamar o suporte da GeHost ou consultar o painel.gehost.com.br para confirmar o que está incluso no seu contrato. 💛
1. Afinal, o que é um proxy reverso?
Pensa assim: o Nginx vira o "recepcionista" do seu servidor. Toda visita que chega (via porta 80/443) passa primeiro por ele. O Nginx decide o que fazer com aquela requisição e, no nosso caso, entrega ela para o Apache, que continua processando as páginas normalmente nos bastidores. O visitante nem percebe — ele só sente o site mais rápido e mais estável.
2. Por que juntar Nginx + Apache?
- Performance: o Nginx é excelente em lidar com muitas conexões simultâneas e servir arquivos estáticos (imagens, CSS, JS) rapidinho.
- Compatibilidade: o Apache continua cuidando de tudo que ele já faz bem, como arquivos
.htaccesse módulos específicos de algumas aplicações. - Segurança: o Nginx na frente funciona como uma camada extra de proteção, filtrando requisições antes delas chegarem ao Apache.
- SSL centralizado: você pode gerenciar os certificados em um único lugar (o Nginx), simplificando a manutenção.
3. Pré-requisitos
- Um servidor VPS ou dedicado com acesso root via SSH.
- Apache já instalado e funcionando com seu site.
- Um pouco de paciência e café ☕ — vamos com calma!
4. Passo a passo da configuração
Passo 1 — Instalar o Nginx
Via terminal, com o pacote correspondente à distribuição do seu servidor (por exemplo, apt em sistemas baseados em Debian/Ubuntu ou yum/dnf em sistemas baseados em RHEL/CentOS). Se tiver dúvida sobre qual comando usar no seu servidor, fale com o suporte antes de prosseguir.
Passo 2 — Mudar a porta do Apache
Como o Nginx vai "tomar conta" das portas 80 (HTTP) e 443 (HTTPS), o Apache precisa passar a escutar em outra porta interna, normalmente a 8080. Isso é feito no arquivo de configuração de portas do Apache, trocando a porta de escuta de 80 para 8080 — e ajustando também o VirtualHost do seu site para usar essa nova porta.
Passo 3 — Criar o bloco de configuração do Nginx
Agora criamos um arquivo de configuração do site no Nginx, dizendo a ele: "tudo que chegar para este domínio, repasse para o Apache na porta 8080". A ideia central é um bloco server com a diretiva proxy_pass apontando para http://127.0.0.1:8080.
Dica da Sensei: inclua também os cabeçalhosproxy_set_header(comoHost,X-Real-IPeX-Forwarded-For) na configuração do Nginx. Sem eles, o Apache pode "achar" que todas as visitas vêm do próprio servidor, e isso bagunça estatísticas e logs.
Passo 4 — Testar a configuração antes de aplicar
Todo bom administrador testa antes de reiniciar. O Nginx tem um comando de teste de sintaxe que avisa se algo está errado no arquivo antes de você recarregar o serviço — assim você evita deixar o site fora do ar por um erro de digitação.
Passo 5 — Reiniciar os serviços
Com tudo certo, reinicie primeiro o Apache (para ele assumir a nova porta) e depois o Nginx (para ele assumir as portas 80/443). A ordem ajuda a evitar conflitos de porta durante a troca.
Passo 6 — Validar no navegador
Acesse seu domínio normalmente. Se tudo deu certo, o site carrega igualzinho a antes — só que agora passando pelo Nginx. Você pode conferir os logs de acesso do Nginx para confirmar que as requisições estão passando por ele.
5. E o certificado SSL?
Com o Nginx na frente, o mais comum é que ele seja o responsável por "terminar" o SSL, ou seja, apresentar o certificado ao visitante e depois conversar com o Apache internamente sem criptografia (já que essa conversa fica só dentro do próprio servidor). Isso simplifica bastante a renovação e gestão de certificados.
6. Problemas comuns (e como respirar fundo)
- Erro "Address already in use": geralmente significa que o Apache ainda está escutando na porta 80. Confira se a mudança de porta do Passo 2 foi salva e se o Apache foi reiniciado.
- Site carrega, mas sem estilos/imagens: normalmente é caminho de arquivo estático mal configurado no bloco do Nginx — revise a diretiva de proxy.
- IP do visitante aparece errado nos logs do Apache: volte ao Passo 3 e confira os cabeçalhos
proxy_set_header.
7. Precisa de uma mãozinha?
Sei que parece muita coisa de uma vez só, e tudo bem se você preferir não mexer sozinho nisso — mudanças no servidor merecem cuidado. Nossa equipe de suporte está à disposição para ajudar durante o período de suporte gratuito após a entrega, e você também pode acompanhar o que está incluso no seu plano pelo painel.gehost.com.br. Estamos aqui torcendo pelo seu projeto! 🌱