SSH & Avançado 7 visualizações

Como configurar o Nginx como proxy reverso na frente do Apache no seu VPS

Ver no WHMCS

Como configurar o Nginx como proxy reverso na frente do Apache no seu VPS

Olá, amigo(a) GeHost! Seja bem-vindo(a) ao nosso guia de SSH & Avançado, onde vamos transformar seu servidor com um toque de mestre. Hoje, vamos aprender a usar o Nginx como proxy reverso na frente do Apache — uma combinação poderosa para melhorar o desempenho, segurança e escalabilidade do seu site.

Se você já tem acesso ao seu VPS (servidor dedicado ou cloud), este guia é feito para você. Não se preocupe se ainda não sabe o que é proxy reverso — vamos explicar tudo com calma, como se fosse um chá com o Sensei.

O que é um proxy reverso?

É como um "porteiro inteligente" que recebe todas as requisições do cliente, decide quem merece entrar e encaminha a solicitação para o servidor certo — no nosso caso, o Apache. O Nginx é o porteiro, o Apache é o anfitrião.

Com isso, ganhamos:

  • Cache de conteúdo estático (imagens, CSS, JS) — mais rápido para o usuário.
  • Proteção contra ataques DDoS (com configurações avançadas).
  • Balanceamento de carga (em servidores maiores).
  • SSL terminado no Nginx (menos carga no Apache).

Pré-requisitos

Antes de começar, verifique:

  • Seu VPS está rodando Linux (Ubuntu ou Debian recomendado).
  • Voce tem acesso via SSH com usuário root ou usuário com permissão sudo.
  • O Apache já está instalado e funcionando (geralmente no porto 80).
  • O Nginx não está instalado (ou será instalado agora).

Passo a passo: Instalando e configurando o Nginx como proxy reverso

  1. Atualize o sistema
    Antes de instalar qualquer coisa, atualize os pacotes:
    sudo apt update && sudo apt upgrade -y
  2. Instale o Nginx
    Use o gerenciador de pacotes para instalar:
    sudo apt install nginx -y
    Após a instalação, verifique se o serviço está rodando:
    sudo systemctl status nginx
    Você deve ver "active (running)".
  3. Desative o Apache no porto 80 (temporariamente)
    Vamos evitar conflitos. Primeiro, verifique se o Apache está escutando na porta 80:
    sudo ss -tulnp | grep :80
    Se aparecer algo relacionado ao Apache, vamos desativar temporariamente:
    sudo systemctl stop apache2
    (Ou httpd, dependendo da distribuição.)
  4. Configure o Nginx como proxy reverso
    Abra o arquivo de configuração do site do Nginx. Geralmente está em:
    /etc/nginx/sites-available/seu-site
    Crie ou edite esse arquivo com:
    sudo nano /etc/nginx/sites-available/seu-site
    Cole o seguinte conteúdo (ajuste o nome do domínio e o caminho do diretório público do Apache):
    server {
            listen 80;
            server_name seu-domínio.com.br;
    
            location / {
                proxy_pass http://127.0.0.1:8080;
                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;
            }
    
            # Cache de arquivos estáticos
            location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff|ttf)$ {
                expires 1y;
                add_header Cache-Control "public, immutable";
            }
        }

    Importante: Substitua seu-domínio.com.br pelo seu domínio real. O 8080 é apenas um exemplo — se o Apache estiver em outro porto, ajuste.

  5. Ative o site no Nginx
    Crie um link simbólico para o arquivo no diretório sites-enabled:
    sudo ln -s /etc/nginx/sites-available/seu-site /etc/nginx/sites-enabled/
    Remova o site padrão, se necessário:
    sudo rm /etc/nginx/sites-enabled/default
  6. Reinicie o Nginx
    Teste a configuração antes de reiniciar:
    sudo nginx -t
    Se tudo estiver certo, reinicie:
    sudo systemctl restart nginx
  7. Reinicie o Apache (agora no porto 8080)
    Vamos fazer o Apache escutar em outro porto para não conflitar. Edite o arquivo de configuração do Apache:
    sudo nano /etc/apache2/ports.conf
    Altere a linha:
    Listen 80
    para:
    Listen 8080
    Depois, reinicie o Apache:
    sudo systemctl restart apache2
  8. Teste a configuração
    Abra seu navegador e acesse seu domínio. Se o site carregar, parabéns! O Nginx está funcionando como proxy reverso.

    Para verificar se o proxy está funcionando, acesse o log do Nginx:

    sudo tail -f /var/log/nginx/access.log
    E veja as requisições chegando.

Dicas do Sensei GeHost

💡 Dica 1: Use o sudo systemctl status nginx e sudo systemctl status apache2 para verificar o estado dos serviços a qualquer momento.
💡 Dica 2: Se o site não carregar, verifique se o Apache está rodando no porto certo (8080) e se o firewall permite as portas 80 e 443.
💡 Dica 3: Para HTTPS, instale o certificado SSL no Nginx (não no Apache), pois ele é o ponto de entrada. Use o guia SSL/TLS no painel como referência.

Conclusão

Parabéns, mestre! Você acabou de dar um grande passo no mundo da administração de servidores. Com o Nginx como proxy reverso, seu site está mais rápido, seguro e pronto para crescer.

Se precisar de ajuda, lembre-se: você tem o suporte GeHost disponível por 30 dias após a entrega. Acesse o painel do cliente e abra um ticket com detalhes do problema.

Até a próxima, com a energia do código e a calma do servidor. 🌟

Precisa de Ajuda?

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