如上图所示,绝大部分的公司会采用Apache+tomcat集群(或jetty集群)来部署公司的Web服务,
Web服务器和应用服务器关系,先介绍一下我们常说的服务器:
Apache服务器只支持静态页面的请求,对于诸如jsp的动态网页则需要Tomcat应用服务器。也就是说,当一个请求被送到Web服务器里来时,它只单纯的把请求传递给可以很好的处理请求的程序。Web服务器仅仅提供一个可以执行服务器端程序和返回响应的环境,而不会超出职能范围。服务器端程序通常具有事务处理,数据库连接和消息等功能。很显然,Web服务器不支持事务处理和数据库连接池,但它可以配置各种策略来实现容错性和可扩展性,例如负载均衡,缓冲。总而言之,Web服务器专门处理HTTP请求(request),应用程序服务器来实现商业逻辑(business logic)。
整合Apache服务器和Tomcat服务器(或Jetty服务器)的优势,考虑到以下几点:在单一的服务器上执行WEB应用程序有一些重大的问题,当网站成功建成并开始接受大量请求时,单一服务器终究无法满足需要处理的负荷量。另外一个常见的问题是会产生单点故障,如果该服务器坏掉,那么网站就立刻无法运作了。不论是因为要有较佳的扩充性还是容错能力,我们都会想在一台以上的服务器计算机上执行WEB应用程序。所以,这时候我们就需要用到集群技术了。
客户系统一般采用Apache httpd作为web服务器,即作为Tomcat的前端处理器,根据具体情况而定,有些情况下是不需要Apache httpd作为 web 服务器的,如系统展现没有静态页面那就不需要Apache httpd,那时可以直接使用Tomcat作为web 服务器来使用。使用Apache httpd主要是它在处理静态页面方面的能力比Tomcat强多了。图中,通过 Apache-Server 作为中转服务器,实现多个 tomcat 服务器之间的分布式处理,用户直接请求Apache-Server,然后 Apache-Server会将请求分发到具体的tomcat-server,之后tomcat-server响应客户请求并返回结果到Apache-Server,最后Apache-Server返回结果给用户。
最后来说说常见的几种web服务器的负载均衡策略:
参考文献:
[1] http://www.cnblogs.com/ayanmw/archive/2013/06/18/3142400.html
[2] http://www.cnblogs.com/qqzy168/archive/2013/08/03/3199237.html
[3] http://www.server110.com/apache/201403/7964.html
[4] http://www.server110.com/apache/201403/6922.html
[5] http://www.cnblogs.com/itech/archive/2009/08/18/1548860.html
[7] http://my.oschina.net/xianggao/blog/87469
[8] http://blog.sina.com.cn/s/blog_630153a50101lzww.html
原文:http://www.cnblogs.com/RunForLove/p/5143052.html