Nginx + php-fpm VS Nginx como um proxy reverso para o Apache

6

Alguém pode me esclarecer qual é a vantagem de ter o NginX como um proxy reverso do Apache? As pessoas o sugerem para que o conteúdo estático seja manipulado pelo nginx e o conteúdo dinâmico (arquivos php) seja entregue ao Apache.

  1. Não permitiria que o php-fcgi / php-fpm manipulasse esses arquivos PHP de forma muito mais razoável do que permitir que o mod_php do Apache lidasse com ele?

  2. Quais são as vantagens (desempenho sábio)

  3. Se eu optar por inverter o proxy, precisaria fazer uma reconfiguração do nginx ou o .htaccess do apache funcionaria como está? (porque seu proxy reverso, então as chamadas são direcionadas para o apache certo?)

TY antecipadamente

    
por Ansell 05.08.2011 / 21:47

3 respostas

7

Proxy reverso é mais lento e geralmente pior, no entanto, algumas razões para usá-lo é manter (alguns) compatibilidade com arquivos .htaccess (o que você teria que escrever (e isso nem sempre é prático) é usar um puro nginx) ou se você precisar de módulos específicos do apache. (Alguns podem argumentar que você tem esses requisitos, é mais fácil simplesmente usar o apache.)

  1. O PHP-FPM com nginx seria a solução preferida - você obtém o rápido fornecimento de arquivo estático do nginx e um bom desempenho do PHP sem adicionar sobrecarga adicional, uso de proxy ou o (geralmente) significativo uso de memória do apache.
  2. nginx + PHP-FPM é (normalmente) mais rápido e usa menos memória. Nginx + Apache + FastCGI / FPM ainda servirá arquivos estáticos rapidamente, mas terá sobrecarga adicional nos arquivos dinâmicos (não tão ruim quanto mod_php, mas pior do que se você eliminar o apache).
  3. Você precisará de um pouco de ambos - o nginx precisaria saber como lidar com os caminhos (por exemplo, para servir arquivos estáticos, negar acesso ao .htaccess etc.) e o apache precisará saber como lidar com os arquivos. Em alguns casos, se o arquivo .htaccess não estiver relacionado a arquivos estáticos (para que todas as solicitações que precisam ser reescritas venham para o apache), talvez seja aceitável simplesmente negar o acesso a determinados locais e fazer com que o apache faça o resto via .htaccess - não parece ideal, vai custar um pouco em desempenho, e sua confiabilidade é questionável - mas poderia funcionar em uma configuração simples).

Se você puder, use a configuração nginx + PHP-FPM. Se você não puder, embora possa haver alguns méritos para o proxy reverso, pense nas repercussões, especialmente se você estiver dependente de arquivos .htaccess.

    
por 05.08.2011 / 22:00
1

Eu diria que é o contrário: cortar o Apache do mix aumentará o desempenho. Você manteria o Apache se você gostar de alguns dos outros módulos que o Apache fornece, ou se você tem algum motivo externo para continuar usando o Apache para o seu conteúdo dinâmico.

Deve ser bom deixar o Apache lidar com as reescritas, desde que você não faça nada para acessar seu conteúdo estático. Mas certifique-se de ter uma exclusão para .ht* em seu nginx conf: não queira exibir acidentalmente esses arquivos estáticos específicos para o público em geral.

    
por 05.08.2011 / 21:56
0

Eu mudei recentemente de Apache para Nginx . Embora eu não afirme ser um especialista, recomendo eliminar o Apache e usar nginx com PHP-FPM , em vez de proxy reverso. O uso do Nginx sem o Apache proporcionará um leve ganho de desempenho para conteúdo não estático e grande ganho de desempenho para conteúdo estático. Como o Nginx não usa arquivos .htaccess , isso significa que você terá que configurar o Nginx para lidar com todos os seus redirecionamentos, ect. Isso pode parecer um pouco assustador no começo, mas uma vez que aprendi a configurar o Nginx, na verdade achei muito mais simples e fácil do que usar arquivos .htaccess. Existem ferramentas que convertem automaticamente as regras do .htaccess para as regras do Nginx, mas eu recomendaria aprender a fazer isso sozinho. Descobri que as ferramentas não foram convertidas com precisão suficiente e usaram muitas instruções if . Veja: Se é mal .

    
por 06.05.2018 / 17:10