Apache is a general-purpose http server, which supports a number of advanced options that Tomcat doesn't. Although Tomcat can be used as a general purpose http server, you can also set up Apache and Tomcat to work together with Apache serving static content and forwarding the requests for dynamic content to Tomcat. This is generally prefered when using tomcat because the overhead from serving static content directly from Apache is much lower than having Tomcat handle all of the requests.
本质区别:
1)
apache支持静态页面;
tomcat支持动态页面,比如servlet等。
2)
apache是web(http)服务器,它是专门用于提供HTTP服务,以及相关配置的(例如虚拟主机、URL转发等等)
tomcat是应用(java)服务器,它只是一个servlet(jsp)容器,可以认为是apache的扩展,但是可以独立于apache运行。
3)
apache是一辆卡车,上面可以装一些东西如html等。但是不能装水,要装水必须要有容器(桶),而这个桶也可以不放在卡车上。
使用区别:
tomcat 作为 jsp,servlet 容器,虽然有静态解析功能,但性能上与 apache 相比相差很远。
apache 可以运行一年不重启,稳定性非常好,而 tomcat 则不见得。
整合:
一般使用apache+tomcat的话,apache只是作为一个转发,对jsp的处理是由tomcat来处理的。
整合的好处是:
如果客户端请求的是静态页面,则只需要Apache服务器响应请求,apache 解析 html 等静态网页非常快,是经过无数测试证明的。
如果客户端请求动态页面,则是Tomcat服务器响应请求。因为jsp是服务器端解释代码的,这样整合就可以减少Tomcat的服务开销。