Apache + Tomcat VS 独立 Tomcat 或 GlassFish

Ton*_*nyZ 6 security performance tomcat apache-2.2

我正在设置一个 Debian 服务器来为 Java Web 应用程序提供服务。几个星期以来,我已经做了很多研究。Tomcat 的网站说,如果您不使用集群,最好使用独立的 Tomcat 来提高速度。但是,我看到很多人建议使用 Apache + Tomcat 可以为您提供更好的安全性和防御攻击。

请假设该进程将作为非特权用户在端口 80 上运行。我假设如果您在服务器前面运行防火墙,Tomcat 应该没问题。但是,如果您只想使用 Linux 防火墙运行暴露的 Web 服务器,那么最好的选择是什么?

或者也许有人可以推荐另一个开源 Web 服务器。我试图使解决方案尽可能简单,因为这些 web 应用程序将在容器中运行。

欢迎和重视所有意见。

Deu*_*sch 1

我在 UNIX 上使用 Tomcat 和 Glassfish 时遇到的问题是(因为我认为它们是 Java 应用程序)它们无法绑定到端口 80,然后放弃 root 权限。以 root 身份运行这些类型的东西并不是最佳实践,因此留下了两个选择:

(1) 以绑定到高端口(例如 8080)的普通用户身份运行应用程序服务器,并使用 iptables 规则之类的规则将端口 80 流量重定向到端口 8080。我已经在 Linux 上的一些 Glassfish 服务器上完成了此操作,并且它有效很好。

(2) 以 Apache 后面的普通用户身份运行应用程序服务器。Apache 可以绑定到端口 80,放弃权限,然后将请求代理到高端口上的应用程序服务器。

我更喜欢后者,但主要是因为我已经使用 Apache 很长时间了,发现它配置和管理很方便。因此,如果您知道 Apache 很好地使用它,那么当您需要动态重写一些 URL 或调整过期标头时,您会很高兴。另一方面,如果您没有 Apache 经验(或者在这种情况下,因为您需要尽可能轻量级),那么坚持使用 Tomcat 并使用 iptables 可能会更容易。