为什么tomcat需要(不需要)集成apache

为什么我们需要集成apache+tomcat,或者我们为什么不需要集成apache+tomcat?
官方的我FAQ里说了几点,我依理解总结一下:
1.集群:利用apaceh作前端可集群几个tomcat实例,当一个down机了也不至于整个网站down了,当然如果能用了硬件集群或者tomcat自身的集群,这点可以忽略。
2.集群/安全:你可以通过利用apache作前端去区分几个不同的应用上下文(/app1 /app2),那么你对应的tomcat将拥有各自的安全控制,你唯一需要担心的只是apache。从本质上讲,apache成为一个智能的代理服务器。
3.安全:java有security manager,而apache因为有更广泛的使用而使其有更多的安全技巧。根据你不同的应用场景,不能一概而论。但你记住一点,如果你集成apache,你将有两套安全机制,而不是一套。
4.附加组件:在apche上使用cgi,perl,php是很自然的事,apache可以根据你的意愿添加成千上万的插件,虽然tomcat也可以,但很多还没有实现。
5.装饰器:有了apache,你将有很多tomcat没有的或没实现的装饰器,例如mod_headers,mod_rewrite,mod_alias,既然apache都已经做得那么好了,为什么你还要重复制作轮子?!
6.速度:apache处理静态文件更快。除非你的网站流量非常大,否则这点没什么意义。但是在某些场合,tomcat能比apache更出色,当apr和sendFile属性开启时。所以当你衡量该不该集成它们两个时,速度不应该是你所要考虑的。
7.socket处理/系统稳定性:对于处理socket error,apache有更好的处理能力,这是因为tomcat的处理socket是经过jvm的,而jvm是需要跨平台的。而socket的优化是平台相关性相关的。当处理大量的断包,非法的请求,非法的包等等时,apache做得更加好。

原文: http://wiki.apache.org/tomcat/FAQ/Connectors#integrate

猜你喜欢

转载自chembo.iteye.com/blog/1583043