apache + tomcat 负载均衡分布式集群配置

文章原地址:http://blog.csdn.net/u013485144/article/details/51026858


所需资料:Apache2.4+ tomcat6.x(7.x)

一:Apache相关配置

 

Apache安装自行百度,非常简单。

主要配置:Apache/conf/httpd.conf

A:放开相关模块

将这个配置文件中的我们需要使用的功能模块解开注释,启动时才能加载

LoadModule proxy_modulemodules/mod_proxy.so

LoadModule proxy_ajp_modulemodules/mod_proxy_ajp.so

LoadModule proxy_balancer_modulemodules/mod_proxy_balancer.so//这个模块的是起负载均衡的核心模块

LoadModule proxy_connect_modulemodules/mod_proxy_connect.so

//以上是代理相关及ajp协议相关的功能模块,主要是在请求分发的过程中起作用

 

#LoadModule lbmethod_bybusyness_modulemodules/mod_lbmethod_bybusyness.so(按照繁忙程度,总是给活跃请求数最少的服务器)

LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so(按照请求次数)

#LoadModule lbmethod_bytraffic_modulemodules/mod_lbmethod_bytraffic.so(按照流量均衡)

 

//以上是不同的balance策略对应的模块,具体实现的算法,请自行百度(不建议深究实现算法,意义不大,学好剑法不一定要知道怎么打铁的)

 

B:配置均衡策略和地址

在配置文件的最后加上以下内容:

ProxyPass /balancer://proxy/ stickysession=JSESSIONID lbmethod=byrequests

<Proxybalancer://proxy>  

        BalancerMember ajp://127.0.0.1:10001/ loadfactor=3 route=137a

        BalancerMember ajp://10.88.8.137:10001/ loadfactor=1 route=61a

        BalancerMember ajp://10.88.8.137:10002/ loadfactor=1 route=61b status=+H

</Proxy>

 

解释:

    ProxyPass / balancer://proxy/

        ProxyPass / 表示所有以 “/” 开头的请求都适配proxy这个balance策略,标黄的部分是参数,是可变的,也就是说可以给不同的请求url匹配不同的均衡策略。

stickysession=JSESSIONIDlbmethod=byrequests

stickysession是说请求是否是session黏贴性的,就是当第一次请求负载后,以后的请求会按照session走,既同一个session的请求都访问一个webserver(tomcat),如果是PHP实现的后台服务,JSESESIONID需要变成PHPSESSIONID,lbmethod后的参数还可以是bybusynessbytraffic

 

BalancerMember ajp://10.88.8.137:10001/ loadfactor=1 route=61a

这个配置是匹配不同的tomca,我这里使用3个tomcat,需要注意的是使用ajp协议(Apache使用这个协议实现的代理),端口是tomcat中ajp配置的端口 ,loadfactor后面的值是权值,负载均衡的时候会根据这个权值去分配(1-100)。Route是一个命名,如果仔细查看sessionid的话,你能看的这个路由信息会跟在sessionid后面。

Status=+H 表示10.88.8.137:10002这台server是热备服务器,正常业务不会分给它,但是一旦另外两台服务器down了,这台服务器就会被使用到。

 

二、Tomcat配置

    主要是修改tomcat/conf/server.xml,这个文件我估计大家都不陌生,不再赘述,主要强调一下,除了修改server、http端口防止冲突意外,还要注意修改ajp的端口,和命名

一下是几个主要的配片段

<Server port="9005" shutdown="SHUTDOWN">

<Connector port="8080" protocol="HTTP/1.1"

<Connector port="10001" protocol="AJP/1.3"redirectPort="8443" />

<!-- You should set jvmRoute to support load-balancing viaAJP ie :

    <Engine name="Catalina"defaultHost="localhost" jvmRoute="jvm1">

    -->

<Enginename="Catalina" defaultHost="localhost" jvmRoute="137a">

这里注意一下,jvmRoute就是上面Apache配置的route,这个要对应上,还有10001这个端口,也是在上面Apache配置BalanceMember的时候需要用的。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值