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: -)