采用ajp代理模式配置Apache+tomcat实现负载均(附件中具有详细配置)

负载均衡的定义:
       负载均衡的意思就是有几台服务器或者几个服务,通过设备或者软件,将外部来的连接均匀的分配到这几个服务器或者服务上面,使服务器的负载平均,使外部访问基本达到快速。
负载均衡又分为硬负载和软负载,硬负载通过特定的负载均衡器硬件来设置;软负载又分为应用负载、NDS负载、反向代理负载等。
 Apache2.2中自带的proxy_mod模块实现了反向代理负载。
 正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。
 正向代理还可以使用缓冲特性(由mod_cache提供)减少网络使用率。
 反向代理的典型用途是将防火墙后面的服务器提供给Internet用户访问。
 反向代理还可以为后端的多台服务器提供负载平衡,或为后端较慢的服务器提供缓冲服务。
 另外,还可以启用高级URL策略和管理技术,从而使处于不同web服务器系统的web页面同时存在于同一个URL空间下。

Apache和Tomcat之间的通讯基本有三种方式:
1.       Mod_Jk
2.       HTTP_Proxy
3.       AJP_Proxy


APACHE最为最老牌的WEB服务器,提供了2种方式与TOMCAT实现集群。
   Mod_jk和proxy。Mod_jk配置较复杂,一般是老版本在使用,目前一般常用的是proxy方式,本文以proxy进行介绍。
   Proxy是APACHE提供的代理网关模块,支持http,ftp等多种协议的正向和反向代理
   Apache_proxy通过反向代理与TOMCAT结合,包括以下几种方式:
   http直接代理
           支持负载均衡,支持failover,不支持粘性会话(sticky session,我没有测试通过)
   ajp代理
           支持负载均衡,支持failover,支持粘性会话(sticky session)
AJP是Apache提供的完成与其它服务器通讯的一种协议。
apache对tomcat的支持历史:apache第2.1版本后,内置了proxy_ajp,而jk2已经没人开发了,jk则支持到apache的2.0.58版本。
proxy_ajp配置较简单,但可配置性还不如jk2,主要表现在proxy_ajp目前只支持配置到目录,还不支持对文件名称的pattern模式匹配(即还不能定义到只对jsp文件起作用)。
因为proxy_ajp的配置,还不支持对文件名称的pattern模式匹配,所以你要特别注意:
——尽量把jsp和静态文件和图片路径分不同的目录来管理;
——对于静态文件和图片路径,如/images,你可用“ProxyPass /images !”来禁止ProxyPass,从而来让apache来直接处理图片的请求。
在Apache中通过mod_proxy_ajp模块发送AJP数据,另外一端的服务器需要实现AJP协议,能够接受mod_proxy_ajp模块发送的AJP协议数据,在接受到AJP协议数据后做适当处理,并能够将处理结果以AJP协议方式发送回给mod_proxy_ajp模块。
当使用单独的服务器,在Tomcat实例前端使用本地的Web服务器时,性能要比单独使用Tomcat及其默认的HTTP连接糟得多,即使web应用程序本身相当一部分是由静态文件构成。
如果需要将Tomcat同本地的Web服务器集成,AJP连接优于代理HTTP,将提供更好的性能。从Tomcat角度来看,AJP是最有效的。它同时具有HTTP相同的功能。
使用这种协议,具有更高的性能,因为它采用的是二进制传输。比HTTP的文本传输要有更高的效率。在Apache中要使用mod_proxy和mod_proxy_ajp,在Tomcat中则要开启ajp服务。

猜你喜欢

转载自xiaowei-qi-epro-com-cn.iteye.com/blog/2175105