Для начала я бы использовал tomcat для статического и нестатического контента.
tomcat (из версии 5 AFAIK) хорошо справляется и со статическим контентом.
Но если это не очень хорошо для вас, тогда я предлагаю использовать Apache httpd в качестве внешнего сервера и tomcat.
Я использовал mod_jk, и директива JKMount может сообщить apache, какие вызовы должны быть перенаправлены на tomcat. Таким образом, вещи, которые не соответствуют директиве JKMount, обрабатываются самим Apache httpd. Таким образом, ваш статический контент может обслуживаться httpd, а нестатические запросы направляются в tomcat. Вы можете иметь несколько кошек в зависимости от нагрузки.
Но вы должны быть осторожны с тем, как будет проходить аутентификация запроса статического содержимого.
Чтобы иметь возможность масштабирования, введите уровень косвенности между фактическим контентом и его доступом. Как ручка для контента, который можно получить из любого места. Таким образом, вы можете копировать статический контент во многих географически распределенных местах (или использовать CDN)
Надеюсь, это немного поможет.