Realmente depende do que você está fazendo.
Se você possui apenas conteúdo estático, não precisa do Apache. Nginx ou lighttpd serviria muito bem.
Se você tem uma combinação de estática e dinâmica (bem, Perl ou PHP), mas um site pequeno, ainda pode se dar bem com uma dessas alternativas mais o FastCGI, ou simplesmente jogar tudo no Apache.
Se você estiver servindo Ruby junto com seu conteúdo estático, o mod_passenger
Apache deve atendê-lo bem, com nginx / lighttpd / etc servindo seu conteúdo estático.
Para Python (minha área de especialização), você pode usar o Apache, mod_python
se quiser, mas se preparar para a lentidão. mod_wsgi
é melhor, mas você ainda tem a sobrecarga do Apache, o que é bom se você tiver muito tráfego dinâmico pesado . O Apache é um levantador pesado na maioria das vezes.
Se você não tem uma tonelada de tráfego pesado, olhar em novos sistemas como gunicorn
ou uWSGI
ou o tudo-em-um servidor Cherokee para lidar com seu Python. O Cherokee também lida com arquivos estáticos. O restante, você ainda desejará usar o nginx / lighttpd para veicular o conteúdo estático.
Java e outras linguagens, não tenho idéia.
O melhor de usar o nginx, no entanto, é que ele é incrivelmente configurável. Portanto, configure alguns servidores estáticos com subdomínios diferentes, um para CSS, imagens e JS. Dessa forma, você ajuda a evitar o limite de 2 arquivos por domínio por vez. Configure vários servidores e, em seguida, configure um proxy / balanceador de carga nginx na frente deles para garantir que todo o seu conteúdo estático esteja sempre disponível.
Basicamente, SIM, veja mais do que apenas o Apache!