Que interpreta o PHP mais rápido no Ubuntu Server 12.04 de 32 bits, Apache ou Nginx?

6

Eu tenho atualmente instalado o Apache no meu servidor Ubuntu 12.04 32-bit, mas estou interessado em mudar para o Nginx. Eu li uma série de comparações e revisões, onde o Nginx é mais rápido que o Apache servindo conteúdo estático, mas isso não cobre o desempenho do PHP.

Aqui está a minha pergunta: Como o Nginx se compara ao Apache em relação ao desempenho do processamento do PHP? O Nginx também é mais rápido para PHP?

    
por clonerworks 23.07.2013 / 13:58

4 respostas

10

Aqui está uma comparação entre o Apache e o Nginx, listando algumas vantagens e desvantagens.

O Apache, por outro lado, se aproxima de um grande número de solicitações, desmembrando mais processos para lidar com eles, normalmente consumindo muita memória RAM ao fazer isso. E às vezes o Apache fica um pouco preocupado com o tamanho da sua refeição. O Apache está disponível nos repositórios de pacotes do Ubuntu com um rápido sudo apt-get install apache2 .

  • Apache, é o servidor web mais estabelecido hoje e gera mais sites na Web do que qualquer outro servidor.
  • O Apache é um servidor da Web flexível e estabelecido que muitos clientes de nível corporativo confiam na entrega dinâmica e conteúdo estático.
  • O Apache pode ser executado em vários sistemas operacionais, é bem mantido e sua onipresença significa que uma quantidade substancial de gerado pelo usuário existe documentação.
  • O Apache consome mais memória em altas cargas de servidor, o que pode resultar em desempenho degradado.
  • Devido ao quão robusto é, o Apache também vem com tamanho, o que leva a mais consumo de memória.

O Nginx (pronuncia-se "engine-ex") é um servidor Web leve com uma reputação de velocidade, velocidade e velocidade. Ele difere do Apache de uma maneira fundamental - o Apache é um aplicativo orientado a processos e threads, mas o Nginx é orientado a eventos. O efeito prático dessa diferença de projeto é que um pequeno número de processos "trabalhadores" Nginx pode arar através de enormes pilhas de solicitações sem esperar umas pelas outras e sem sincronizar; eles apenas "fecham os olhos" e comem o proverbial elefante o mais rápido que podem, uma mordida por vez.

  • O Nginx foi projetado para ser simples e leve e exigir menos recursos de hardware do que outros servidores da Web. Faz isso em parte por usando um modelo de processamento baseado em eventos, que geralmente requer menos memória que um servidor baseado em processo usa.
  • O Nginx é rápido no atendimento de páginas da Web estáticas.
  • O Nginx é mais recente, há menos documentação e suporte para isso em comparação com servidores da Web mais estabelecidos.
  • O design leve também significa que pode ser mais difícil personalizar, o que pode ser necessário para grandes ou complexos configurações.

A diferença é resumida sucintamente em uma citação de Chris Lea no Why Use Nginx? página: "O Apache é como o Microsoft Word, ele tem um milhão de opções, mas você só precisa de seis. O Nginx faz essas seis coisas, e faz cinco delas 50 vezes mais rápido que o Apache."

Quando você compara o Nginx com o Apache, ambos são softwares de código aberto, e ambos os campos têm uma comunidade de defensores vocais. O Nginx está disponível nos repositórios de pacotes do Ubuntu com um rápido sudo apt-get install Nginx .

No final, os servidores web Nginx e Apache são soluções sólidas, embora cada um tenha seus pontos strongs em determinadas situações. Os principais pontos strongs da Nginx incluem o fornecimento rápido de páginas da Web estáticas e o consumo leve de recursos de memória e hardware. O Apache é o cavalo de batalha estabelecido e versátil, com disponibilidade e documentação abundantes de módulos. Dependendo das necessidades do seu negócio e dos requisitos técnicos, um ou outro, ou até mesmo uma combinação dos dois, pode ser adequado para você.

Espero que isso ajude.

Fonte: Lee Hutchinson & amp; Lukasz Kujawa

    
por Mitch 23.07.2013 / 16:39
6

O Nginx com PHP-FPM é geralmente mais rápido que o Apache com mod_php , mas a melhoria de desempenho resultante depende do ambiente (complexidade do código PHP, usuários / carga, hardware etc.), onde você implementa sua solução ou aplicativo da web .

Precisamos nos aprofundar um pouco mais nos servidores da Web para entender por que não há comparações simples de desempenho do PHP para servidores da Web.

Suporte PHP em Nginx

O Apache usa mod_php para interpretar o código PHP. Lighttpd , um concorrente do Nginx durante os primeiros dias, usou seu próprio spawn_fcgi (outro Implementação FastCGI ) para melhorar a velocidade e resultou na capacidade de servir mais usuários com a mesma ou menor quantidade de recursos que o Apache. Assim, ganhando popularidade.

O Nginx é um pouco mais diferente do Lighttpd. Atualmente, o Nginx suporta muitas funcionalidades e também pode ser configurado para executar spawn_fcgi , mas nunca foi tão integrado a ele quanto o Lighttpd. O que permitiu repensar sobre o suporte PHP para servidores web e provavelmente levou ao projeto FastCGI Process Manager (PHP-FPM).

O PHP-FPM está disponível no Ubuntu através do pacote php-fpm em 12.04. O pacote do Ubuntu vem pré-configurado, mas vale a pena ler sobre como ajustar os parâmetros do pool para suas necessidades (impatcs: complexidade de código, RAM disponível e capacidade de processamento da CPU, tempo de execução). Há também guias disponíveis que explicam como configurar pools dedicados para diferentes aplicativos, gerando não apenas mais desempenho, mas também segurança. Se você se preocupa com o desempenho, reserve um tempo para conhecer os principais componentes da nova pilha de servidores.

Configurando o Nginx

Por favor, leia a documentação do Nginx no wiki do projeto em inglês . Achei muito útil entender como o Apache é configurado, por que o Nginx faz as coisas de maneira diferente (por exemplo, if é mal ) e como você obtém melhorias de velocidade com o Nginx.

Se você substituir o Apache pelo Nginx e tentar configurá-lo da mesma forma que o Apache, não terá muita melhoria de velocidade ou sua configuração simplesmente não funcionará.

O Nginx basicamente visa reduzir a complexidade e, ao mesmo tempo, fornecer um amplo conjunto de recursos.

E quem disse que você não pode executar um Apache por trás do Nginx?

    
por LiveWireBT 23.07.2013 / 18:25
3

Geralmente, é dito que o nginx é mais rápido, quando há muito conteúdo estático e o número de solicitações do usuário é alto. Se você tem um website pequeno, é realmente sua preferência selecionar seu servidor web. Mas, para responder à pergunta em si, a diferença no processamento do PHP em si deve ser insignificante.

    
por meskobalazs 23.07.2013 / 14:16
0

Você pode usar nginx, é muito rápido vs Apache2 com bot estático e dinâmico e tempo de resposta também rápido, em seguida, outro.

Ele também funciona bem com php, rails e outras linguagens de script.

    
por Gaurav Sharma 23.07.2013 / 14:17