O que seria melhor no meu caso - apache, nginx ou lighttpd?

2

Estou escrevendo um site em PHP que espera obter cerca de 200 a 300 usuários simultâneos navegando nele. Ao inicializar o aplicativo, você irá carregar cerca de 30 classes PHP, umas 10 ou 15 imagens e alguns arquivos css.

Então, minha pergunta é: o que mais eu posso fazer (exceto otimizar meu código e usar o apc / eaccelerator para PHP) para chegar o mais próximo possível desses números de usuários simultâneos?

Atualmente, não escolhemos um servidor para o site ser hospedado, mas provavelmente será um VPS Dual Core + 2 ou talvez 4 GB de RAM. É possível que tal servidor manipule essa carga? Além disso, como eu poderia testá-lo e ter certeza de que ele será capaz de lidar com isso?

    
por tftd 11.01.2011 / 18:31

2 respostas

2

Eu pessoalmente recomendaria o Apache usando mpm_worker com FastCGI PHP, eAccelerator e possivelmente o cache de disco via mod_disk_cache , dependendo do seu aplicativo PHP. Se você usar o PHP para gerar arquivos estáveis, que podem ser armazenados em cache, como imagens, JavaScript ou CSS, ou se seu conteúdo puder ser armazenado em cache, você poderá notar um enorme aumento no desempenho.

Mudamos do mpm_prefork + mod_php para mpm_worker do Apache, do PHP FastCGI e do mod_disk_cache , e vimos melhorias drásticas na velocidade. Uma razão é que usamos o PHP para minificar arquivos JS e CSS, e até mesmo chamar PHP para readfile() um arquivo JS minificado em cache é muito mais lento do que deixar o Apache com mpm_worker servir esse arquivo de um cache de disco.

Muitas pessoas usam o lighttpd acima do Apache a todo custo, dizendo que o Apache está inchado e lento. Eu usei o lighttpd antes e era bem simples, mas na minha experiência o Apache pode ser ajustado para desempenho extremo, e o módulo mpm_worker fornece o mesmo conceito básico de threading no qual o lighttpd é baseado.

Re: RAM, consiga o máximo que puder! Se você puder pagar por 4GB, faça isso. Você ficará feliz por ter feito isso.

Para testes de desempenho, existem muitas ótimas ferramentas por aí, mas eu acho que a ferramenta de benchmark apacvhe que vem com o Apache é uma maneira rápida e fácil de testar o desempenho. As especificidades de como deve ser usado exigem uma pergunta separada: -)

    
por 11.01.2011 / 20:19
1

A menos que seu código PHP seja realmente ruim, a resposta é que qualquer uma dessas soluções deve lidar com a carga. Você deve ir com o que for mais familiar para você e o mais fácil para você configurar e gerenciar.

    
por 11.01.2011 / 20:28