Apache与Tomcat关系

1、为什么要整合Apache和Tomcat?
2、没有Apache,Tomcat会出现什么问题?
3、Tomcat对静态网页的处理相对于Apache难道真的非常差吗?差多少?
主要目的

1. tomcat不建议用root跑,而linux下面不可以用非root帐号跑80端口 (除了apache外,也可以用iptables)
2. 用mod_jk做软负载均衡
3. tomcat是单一的java servlet container,如果没有apache则不可以运行php, perl等程序

简单的IMAGE/HTML/ARCHIVE文件在tomcat上也是经过java线程处理,比较浪费资源
给我个集成(或者不集成)Apache和Tomcat的理由

有很多的理由将Tomcat和Apache集成,同样也有很多的理由不这样做。在Tomcat 5中,性能不在是决定性因素。以下就是集成与不集成的讨论:

1、聚合。使用Apache做为前端大门,后端部署多个Tomcat实例,如果一个实例出现问题,Apache将忽略这个实例,让系统管理员高枕无忧。当然如果在硬件负载均衡设备的基础上利用Tomcat的聚合能力就没有必要进行集成了。

2、聚合/安全。当然如果使用Apache做为门户来区分拥有不同URL命名空间的不同的Tomcat。每个Tomcat都成为一个保护区域,从安全角度讲,仅仅需要主要Apache 服务器。在这个方案中,Apache已经变成一个轻量级的代理服务器。

3、安全。就安全来讲,集成和不集成都是争论双方的焦点。Java有安全管理功能,Apache对安全考虑的也是比较周道的。可以使用Google来查阅这方面的资料。在某个场合中,集成是上上策,但是另外一个场合,可能不集成略胜一筹。但是如果集成Apache和Tomcat,一定要记住:你需要同时关注Apache和Tomcat的安全,而不是一个。

4、附加因素。在Apache上运行perl,PHP和CGI都是很普通的事情。但是对Tomcat来说,不仅速度忙,而且不太正式。Apache可以任意添加上百个附加软件,当然Tomcat也有这个能力,但是这样的模块还没有开发出来。

5、装饰。当Apache做为Tomcat前端时,你可以完成大量Tomcat不支持或没有现成代码的装饰工作。没有必要重新为Tomcat开发一套类似为Apache的mod_headers,mod_rewrite, and mod_alias。

6、速度。Apache的静态网页处理速度高于Tomcat。但是除非你的流量很大,这一点时没有意义的。在另外一些情况下,Tomcat要比Apache快。所以两者结合可以加速你的站点。

7、Socket handling(姑且认为是连接)/系统稳定性。Apache在处理错误链接上优于Tomcat。主要原因是Tomcat所有的连接都交给JVM来处理,而JVM是跨平台的,问题是跨平台的优化是一个严峻的考验。大部分时间java程序都是正常的,但是当情况非常恶劣时,例如:非常频繁的掉线,无效数据包,无效IP的无效请求。Apache比基于JVM的程序要好。


因为我所有的页面都是html(xml+xslt=html+css=我的站点)。所以Apache是最优选择了。

猜你喜欢

转载自testzhong.iteye.com/blog/716037