使用Apache HTTPD代理tomcat是个坏主意

时间:2012-03-23 17:51:08

标签: tomcat apache

带有httpd的前端tomcat为我们解决了一个大问题。我们可以将httpd和tomcat分离到不同的机器,即将托管httpd的服务器放在DMZ中,并将托管tomcat的服务器放在更安全的防火墙后面,因为它需要建立数据库连接, 这是DMZ内部不允许的。我们使用AJP(mod_proxy_ajp)。

我们的生产环境中没有发现任何性能问题。但我最近碰到了以下内容 “无论你做什么,都应该不惜一切代价避免使用Apache HTTPD代理你的请求,因为它会使你的性能降低近50%。” 来自http://www.mulesoft.com/tomcat-performance

我希望得到人们对该声明的专家意见。

谢谢,

1 个答案:

答案 0 :(得分:6)

  

使用Apache HTTPD代理tomcat

是一个坏主意

不,如果配置和使用正确,它实际上可以加速服务。请记住您正在使用它的环境。可能没有必要在开发环境或内部专用网络中运行它,除非您在同一服务器上运行不同服务的混合环境。

事实上,你可以通过Apache代理请求来减少tomcat的负担。您可以设置Apache以执行所有压缩,加密和CA Cert管理,同时通过AJP将请求代理到tomcat。您还可以利用虚拟主机和子域在同一服务器上运行多个服务。

  

我们的生产环境中没有发现任何性能问题。   但是我最近碰到了以下“无论你做什么,使用   应该不惜一切代价避免代理您的请求的Apache HTTPD,如   它会使你的表现降低近50%。“来自   http://www.mulesoft.com/tomcat-performance

这完全取决于您如何设置Apache以及您为代理配置的协议。某些协议和模块比其他协议和模块慢。但是,由于将AJP与mod_proxy一起使用,我似乎没有太多退化。它一直很好用。此外,我们还使用mod_security来增加入侵和漏洞检测。

Apache带来的最大优势之一是能够实现负载均衡和扩展服务。