Como configurar o proxy reverso do Nginx para o Apache
O Nginx e o Apache são dois dos servidores da Web mais populares do mundo, cada um com seus pontos fortes. O Apache é conhecido por sua flexibilidade e sistema de módulos robusto, enquanto o Nginx é preferido por seu alto desempenho e baixo consumo de recursos, especialmente para servir conteúdo estático. Em muitos cenários, é vantajoso combinar os dois usando o Nginx como um proxy reverso na frente do Apache. Essa configuração permite que o Nginx trate as solicitações de entrada e atenda aos arquivos estáticos, enquanto o Apache trata do conteúdo dinâmico, como scripts PHP ou aplicativos orientados por banco de dados.
Neste artigo, vamos orientá-lo no processo de configuração do Nginx como proxy reverso para o Apache, garantindo uma configuração perfeita e eficiente do servidor Web.
O que é um proxy reverso?
Um proxy reverso é um servidor que fica na frente de um ou mais servidores de back-end e encaminha as solicitações dos clientes para o servidor apropriado. Nesse caso, o Nginx atuará como um proxy reverso, encaminhando as solicitações para o Apache, que fornecerá conteúdo dinâmico.
O uso do Nginx como proxy reverso oferece vários benefícios:
- Desempenho aprimorado: O Nginx é excelente em servir arquivos estáticos (por exemplo, imagens, CSS, JavaScript) rapidamente, reduzindo a carga no Apache.
- Balanceamento de carga: O Nginx pode distribuir o tráfego entre vários servidores de back-end, melhorando a disponibilidade e a confiabilidade.
- Terminação de SSL: O Nginx pode lidar com a criptografia SSL, descarregando a carga computacional do Apache.
- Segurança: O Nginx pode fornecer recursos de segurança adicionais, como filtragem de solicitações e limitação de taxa.
Etapa 1: instalar o Nginx e o Apache
Antes de configurar o Nginx como proxy reverso, certifique-se de que o Nginx e o Apache estejam instalados em seu servidor. Você pode instalá-los usando o gerenciador de pacotes, dependendo da sua distribuição Linux.
Para Debian/Ubuntu:
Para CentOS/RHEL:
Depois que o Nginx e o Apache estiverem instalados, inicie e habilite os dois serviços para garantir que sejam executados na inicialização:
Etapa 2: Configurar o Apache
O Apache atuará como servidor backend, processando solicitações dinâmicas, como scripts PHP. Certifique-se de que o Apache esteja configurado para escutar em uma porta específica, geralmente a porta
8080
80
80
Configure o Apache para escutar na porta 8080:
- Abra o arquivo de configuração do Apache:
- Encontre a linha que especifica a porta que o Apache escuta (geralmente) e altere-a para:
Listen 80
- Salve as alterações e saia do editor.
- Reinicie o Apache para aplicar as alterações:
Agora, o Apache está configurado para escutar na porta
8080
80
Etapa 3: configurar o Nginx como um proxy reverso
Em seguida, precisamos configurar o Nginx para atuar como um proxy reverso, encaminhando as solicitações para o Apache. Criaremos um host virtual no Nginx que escuta na porta
80
8080
Criar configuração de host virtual do Nginx:
- Abra ou crie um novo arquivo de configuração de host virtual no Nginx:
- Adicione a seguinte configuração ao arquivo:
Nessa configuração:
- : o Nginx escuta na porta
listen 80
para solicitações de entrada.80
- : o domínio ou endereço IP que o Nginx atenderá.
server_name
- : Encaminha solicitações para o Apache, que está escutando na porta
proxy_pass
.8080
- : Passa vários cabeçalhos para o Apache, incluindo o IP e o protocolo originais do cliente.
proxy_set_header
- O blocopara conteúdo estático garante que o Nginx atenda diretamente a arquivos como imagens, CSS e JavaScript, reduzindo a carga no Apache.
de localização
- Salve e feche o arquivo de configuração.
- Se estiver usando o Debian/Ubuntu, ative o site criando um link simbólico para:
sites-enabled
- Teste a configuração do Nginx quanto a erros de sintaxe:
- Reinicie o Nginx para aplicar a nova configuração:
Etapa 4: Testando a configuração do proxy reverso
Agora que o Nginx e o Apache estão configurados, é hora de testar a configuração do proxy reverso para garantir que tudo funcione corretamente.
- Visite seu domínio ou endereço IP: Abra o navegador e navegue até(substitua por seu domínio real ou IP do servidor). Se tudo estiver configurado corretamente, você verá o conteúdo sendo servido pelo Apache, mas roteado pelo Nginx.
http://example.com
- Verifique os registros do Nginx e do Apache: Se houver algum problema, verifique os registros do Nginx e do Apache para solucionar o problema:
- Registros do Nginx:e
/var/log/nginx/access.log
/var/log/nginx/error.log
- Registros do Apache:e
/var/log/apache2/access.log
(ou/var/log/apache2/error.log
para CentOS/RHEL)/var/log/httpd/
- Registros do Nginx:
Etapa 5: (Opcional) Configurar SSL para HTTPS
Se você deseja proteger seu site com HTTPS, o Nginx pode lidar com a terminação SSL. Isso significa que o Nginx gerenciará os certificados SSL e a criptografia, enquanto o Apache lidará apenas com o tráfego HTTP descriptografado.
Etapas para ativar o SSL:
- Obter um certificado SSL: Você pode usar o Let’s Encrypt para obter um certificado SSL gratuito para seu domínio:
- Modifique a configuração do Nginx: Atualize seu arquivo de configuração do Nginx para escutar na portapara HTTPS:
443
- Redirecionar HTTP para HTTPS: adicione um bloco de redirecionamento em sua configuração para garantir que todas as solicitações HTTP sejam redirecionadas para HTTPS:
- Reinicie o Nginx: Reinicie o Nginx para aplicar as alterações:
Conclusão
Usar o Nginx como um proxy reverso para o Apache é uma configuração poderosa que combina os pontos fortes de ambos os servidores da Web. O Nginx lida com conteúdo estático e solicitações de entrada de forma eficiente, enquanto o Apache gerencia o conteúdo dinâmico e o processamento de back-end. Essa abordagem híbrida pode melhorar muito o desempenho, a segurança e a escalabilidade de sua infraestrutura de servidor da Web.
Seguindo as etapas descritas neste guia, você pode configurar o Nginx como um proxy reverso na frente do Apache e se beneficiar do melhor dos dois mundos. Além disso, a implementação do SSL com o Nginx garante a segurança do seu site, proporcionando tranquilidade para você e seus usuários.