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
rootou usuário com permissãosudo. - 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
- Atualize o sistema
Antes de instalar qualquer coisa, atualize os pacotes:sudo apt update && sudo apt upgrade -y - Instale o Nginx
Use o gerenciador de pacotes para instalar:
Após a instalação, verifique se o serviço está rodando:sudo apt install nginx -y
Você deve ver "active (running)".sudo systemctl status nginx - Desative o Apache no porto 80 (temporariamente)
Vamos evitar conflitos. Primeiro, verifique se o Apache está escutando na porta 80:
Se aparecer algo relacionado ao Apache, vamos desativar temporariamente:sudo ss -tulnp | grep :80
(Ousudo systemctl stop apache2httpd, dependendo da distribuição.) - Configure o Nginx como proxy reverso
Abra o arquivo de configuração do site do Nginx. Geralmente está em:
Crie ou edite esse arquivo com:/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):sudo nano /etc/nginx/sites-available/seu-siteserver { 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.brpelo seu domínio real. O8080é apenas um exemplo — se o Apache estiver em outro porto, ajuste. - Ative o site no Nginx
Crie um link simbólico para o arquivo no diretóriosites-enabled:
Remova o site padrão, se necessário:sudo ln -s /etc/nginx/sites-available/seu-site /etc/nginx/sites-enabled/sudo rm /etc/nginx/sites-enabled/default - Reinicie o Nginx
Teste a configuração antes de reiniciar:
Se tudo estiver certo, reinicie:sudo nginx -tsudo systemctl restart nginx - 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:
Altere a linha:sudo nano /etc/apache2/ports.conf
para:Listen 80
Depois, reinicie o Apache:Listen 8080sudo systemctl restart apache2 - 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:
E veja as requisições chegando.sudo tail -f /var/log/nginx/access.log
Dicas do Sensei GeHost
💡 Dica 1: Use osudo systemctl status nginxesudo systemctl status apache2para 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. 🌟