这个问题不是关于性能,也不是关于负载平衡等。
哪个更安全:以独立模式运行Tomcat,还是在Apache后面运行Tomcat?
事情是,Tomcat是用Java编写的,因此它对缓冲区溢出/溢出几乎是免疫的(除非在Tomcat使用的C编写的lib中的缓冲区溢出可以被触发,但是它们很less见(我记得最后一次是在zlib中,许多许多月前)和一个黑客实际利用),它摆脱了很多潜在的利用。
这一页:
http://wiki.apache.org/tomcat/FAQ/Security
有这样的说法:
由于Tomcat的安全问题,公司,组织或个人都没有受到公开的损害……只有理论上的漏洞被发现。 尽pipe没有logging这些脆弱性的实际利用情况,但所有这些都得到解决。
这与Java缓冲区溢出/溢出几乎不存在的事实相结合,使我相信Tomcat处于独立模式是相当安全的。
除此之外,我可以在Linux上安装Java和Tomcat,而不需要root。 唯一需要成为根的时刻是build立一个透明的端口8080到80端口的转发(和8443到443)。 两个iptables行作为根,这是所有的根需要。 (我不知道Apache)。
Apache比Tomcat使用得多,并且没有像Tomcat那样的安全logging。
什么使Tomcat + Apache 更安全?
什么会使Tomcat + Apache 不太安全?
总之:哪个更安全,Tomcat独立还是Tomcat与Apache? (记住这里的performance不是问题)
关于这个主题的一些背景,在2007年的Tomcat邮件列表上:
http://mail-archives.apache.org/mod_mbox/tomcat-users/200710.mbox/%[email protected]%3E
简短的回答:如果你没有看到有效的把Tomcat放在httpd前面的理由,那么很可能没有。
索赔之一有时可以阅读,你应该总是把一个httpd放在Tomcat的前面是完全废话IMO。 事实恰恰相反。
什么会使Tomcat + Apache不太安全?
什么使Tomcat + Apache更安全?
不知道。