这个问题不是关于性能,也关于负载平衡等等。
哪个更安全:在独立模式下运行 Tomcat 还是在 apache 后面运行 Tomcat?
问题是,Tomcat 是用 Java 编写的,因此它几乎不受缓冲区溢出的影响(除非 Tomcat 使用的用 C 编写的库中的缓冲区溢出可以被触发,但这种情况很少见 [我记得最后一次是在 zlib 中,很多很多个月以前] 并且实际上很难利用),这消除了很多潜在的漏洞。
这一页:
http://wiki.apache.org/tomcat/FAQ/Security
有话要说:
目前还没有公开的案例表明 Tomcat 安全问题对公司、组织或个人造成了损害……只发现了理论上的漏洞。尽管没有实际利用这些漏洞的记录案例,但所有这些漏洞都得到了解决。
这一点,加上 Java 中缓冲区溢出/溢出几乎不存在的事实,让我相信独立模式下的 Tomcat 是相当安全的。
除此之外,我可以在 Linux 上安装 Java 和 Tomcat,而无需 root 权限。我唯一需要 root 权限的地方是设置透明端口 8080 到端口 80 的转发(以及 8443 到 443)。以 root 权限运行两行 iptables,这就是 root 权限所需要的全部内容。(我不知道 Apache 是否需要)。
Apache 的使用率比 Tomcat 高得多,并且确实没有像 Tomcat 那样好的安全记录。
Tomcat + Apache 有什么用更多的安全的?
Tomcat + Apache 有什么用较少的安全的?
简而言之:独立版 Tomcat 和带 Apache 的 Tomcat 哪个更安全?(记住性能不是这里的问题)
有关该主题的一些背景信息,请参见 2007 年的 Tomcat 邮件列表:
http://mail-archives.apache.org/mod_mbox/tomcat-users/200710.mbox/%[电子邮件保护]%3E
简短的回答:如果您没有看到一个令人信服的理由主动将 httpd 放在 Tomcat 前面,那么很可能就没有理由了。
有时人们会读到这样的主张:你应该总是我认为在 Tomcat 前面放置 httpd 完全是无稽之谈。事实恰恰相反。
答案1
2021 年更新:
我不喜欢我以前的答案。我不会改变它。但我不喜欢它。
2010更新之前:
什么会使 Tomcat + Apache 变得不那么安全?
- 攻击面更大。更多代码正在解析请求。因此,遇到/利用安全漏洞的可能性更大。
- 需要安装更多修复程序,需要纠正更多配置文件,需要正确设置更多安全设置。出现人为错误的可能性更大。
什么会使 Tomcat + Apache 更安全?
不知道。