Os servidores de aplicativos da Web são bons para hospedar seus aplicativos (Ruby, Java, etc), mas não tão bons quanto o Apache para hospedar arquivos estáticos ou fornecer balanceamento de carga / failover ( mod_proxy ), segurança / filtragem ( mod_security ), reescrevendo ( mod_rewrite ) etc. Por isso é bastante comum usar o Apache como front-end, possivelmente servindo todos o conteúdo estático e, em seguida, os pedidos de proxy para o servidor de aplicativos (mongrel, tomcat, etc).
O Apache é um trecho de código bem auditado que "tem andado por aí" um pouco mais do que os servidores mais recentes, por isso faz sentido tê-lo como o servidor que enfrenta a Internet não confiável. Isso também significa que você pode colocar seus servidores de aplicativos dentro de sua rede e seus servidores Apache em sua DMZ.