Por incrível que pareça, algumas dessas respostas - algum de vocês, na verdade, executam sites de alto desempenho multi-camadas e multi-servidor suportados pelo Tomcat? OP, sua suposição original de que o Tomcat não é "lento" ... wow. O motor Tomcat é o calcanhar de Aquiles de toda a ecosfera.
Sim, você quer o Apache na frente - ele fornece primeiramente o mod_rewrite (você já implementou o UrlRewriteFilter no seu Tomcat?), bem como os arquivos htaccess que tornam a proteção de um servidor da Web tão importante. O Apache pode permitir que você faça o balanceamento de carga dos nós do Tomcat, sirva seu conteúdo estático muito mais rápido e obtenha um desempenho melhor do Tomcat porque você não está sobrecarregando o pipe de solicitação com o não-Java (js / css / html / jpg / etc.) coisas. Você pode descarregar seu SSL no Apache (se não descarregar em um LB de hardware) com facilidade e nem mesmo ter que lidar com esse travesti chamado Java Keystore. Há tantas vitórias - você pode ajustar o mod_jk em seus nós de back-end para evitar sobrecarregar o pobre cérebro de Java, porque ele normalmente não pode lidar com o tráfego massivo com as classes médias do codificador Java.
Cuidado com qualquer um que lhe diga que o Apache (ou nginx, etc - mas o desempenho do Apache vai ofuscar o Tomcat de qualquer maneira, então não importa) não é uma boa idéia na frente do Tomcat.