Esta questão não é sobre desempenho, nem sobre balanceamento de carga, etc.
Qual seria mais seguro: executando o Tomcat no modo autônomo ou executando o Tomcat atrás do apache?
O fato é que o Tomcat é escrito em Java e, portanto, é imune a overrun / overflow de buffer (a menos que um buffer saturado em uma biblioteca escrita em C usada pelo Tomcat possa ser acionado, mas eles são raros. Eu lembro que estava no zlib, muitas luas atrás] e um pedaço de um hack para realmente explorar), que se livra de um monte de explorações em potencial.
Esta página:
link
tem isto a dizer:
There have been no public cases of
damage done to a company,
organization, or individual due to a
Tomcat security issue... there have
been only theoretical vulnerabilities
found. All of those were addressed
even though there were no documented
cases of actual exploitation of these
vulnerabilities.
Isso, combinado com o fato de que buffer overrun / overflow são praticamente inexistentes em Java, me faz acreditar que o Tomcat no modo standalone é bastante seguro.
Além disso, posso instalar o Java e o Tomcat no Linux sem precisar ser root. O único momento que eu preciso ser root é configurar uma porta transparente 8080 para o encaminhamento da porta 80 (e 8443 para 443). Duas linhas do iptables como root, isso é tudo que o root é necessário. (Eu não sei para o Apache).
O Apache é muito mais usado que o Tomcat e definitivamente não tem um histórico de segurança tão bom quanto o Tomcat.
O que tornaria o Tomcat + Apache mais seguro?
O que tornaria o Tomcat + Apache menos seguro?
Resumindo: qual é mais seguro, Tomcat independente ou Tomcat com Apache? (lembrando que o desempenho não é um problema aqui)
Algumas informações sobre o assunto, aqui na lista de discussão do Tomcat em 2007:
link
Short answer: if you don't see a
compelling reason to actively put an
httpd in front of Tomcat, there most
probably is none.
the claim one can sometimes read that
you should always put an httpd in
front of Tomcat is complete nonsense
IMO. The opposite is true.