为什么要在另一个 Web 服务器前面使用 Apache?

Sas*_*gov 7 web-server apache-2.2

我见过很多 Web 服务器设置,其中 Apache 位于另一个 Web 服务器之前。其中最突出的例子是 Java Web 服务器,例如 Glassfish、Tomcat 等。这有什么意义?我意识到将 Apache 放在 Mongrel 集群前面的意义是负载平衡,但其他服务器呢?这样做的原因是什么?

crb*_*crb 11

Web 应用服务器擅长托管他们的应用程序(Ruby、Java 等),但在托管静态文件或提供负载平衡/故障转移(mod_proxy)、安全/过滤(mod_security)、重写(mod_rewrite)等方面不如 Apache . 因此,使用 Apache 作为前端是很常见的,可能会提供所有静态内容,然后将请求代理到应用程序服务器(mongrel、tomcat 等)。

Apache 是经过充分审核的一段代码,它比新的服务器“更全面”,因此将其作为面向不受信任的 Internet 的服务器是有意义的。这也意味着您可以将应用程序服务器放在网络中,将 Apache 服务器放在 DMZ 中。

  • 出于上述相同的原因,许多人使用 lighttpd 或 thttpd。 (3认同)