Dipende davvero da cosa stai facendo.
Se hai solo contenuti statici, non hai bisogno di Apache. nginx o lighttpd ti servirebbero bene.
Se hai un mix di statico e dinamico (beh, Perl o PHP), ma un piccolo sito, puoi comunque cavartela con una di quelle alternative più FastCGI, o semplicemente gettare il tutto in Apache.
Se stai offrendo Ruby insieme al tuo contenuto statico, mod_passenger
in Apache dovrebbe servirti bene, con nginx / lighttpd / etc che serve il tuo contenuto statico.
Per Python (la mia area di competenza), puoi fare in modo che Apache usi mod_python
se vuoi, ma preparati alla lentezza. mod_wsgi
è meglio ma hai ancora il sovraccarico di Apache, il che va bene se hai un sacco di pesante traffico dinamico . Apache è un sollevatore pesante per la maggior parte del tempo.
Se non hai un sacco di traffico intenso, cerca nuovi sistemi come gunicorn
o uWSGI
o il server all-in-one Cherokee per gestire il tuo Python. Cherokee gestisce anche i file statici. Per il resto, vorrai comunque utilizzare nginx / lighttpd per servire il contenuto statico.
Java e altre lingue, non ne ho idea.
Il bello dell'utilizzo di nginx, tuttavia, è che è incredibilmente configurabile. Quindi imposta un paio di server statici con diversi sottodomini, uno ciascuno per CSS, immagini e JS. In questo modo puoi evitare il limite di 2 file per dominio alla volta. Configurare diversi server e quindi impostare un proxy / bilanciamento del carico nginx davanti a loro per assicurarsi che tutto il contenuto statico sia sempre disponibile.
Fondamentalmente, SÌ, guarda più di Apache!