apache,tomcat ,loadbalance

Apache+Tomcat ,load balance

 

 

1.编译httpd apache 版本要在2.2 之上

./configure --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre --prefix=/ceno/product/httpd --enable-module=vhost_alias --enable-module=so --enable-proxy --enable-proxy-ajp  --enable-proxy-balancer --enable-proxy-http

Make

Make install

 

 

 

查看有没有配置mod_proxy

步骤一:

 执行/ceno/product/httpd/bin/httpd –l 命令,查看结果中有没有列出如下内容:

  mod_proxy.c

  mod_proxy_connect.c

  mod_proxy_ftp.c

  mod_proxy_http.c

  mod_proxy_scgi.c

  mod_proxy_ajp.c

  mod_proxy_balancer.c

 如果有,即说明已经安装了,不在进行步骤二。如果没有,则进入步骤二

 

步骤二:

  进入到/ceno/product/httpd/modules (httpd 的安装目录) 查看有没有

    mod_proxy_balancer.so

mod_proxy_http.so

mod_proxy.so

如果有,则说明安装成功,不再进行步骤三,否则进入步骤三进行安装

步骤三:安装

 

cd /work/apache/httpd-2.2.21/modules/proxy  apache 源文件下载的解压目录

 

/ceno/product/httpd/bin/apxs -c –i mod_proxy.c proxy_util.c

/ceno/product/httpd/bin/apxs -c –i mod_proxy_balancer.c

/ceno/product/httpd/bin/apxs -c –i mod_proxy_http.c

 

出现下面这个,则提示安装成功:

----------------------------------------------------------------------

Libraries have been installed in:

   /ceno/product/httpd/modules

 

 

 

 

3.配置httpd.conf文件(ajp 协议)

 

###############################################################

#LoadModule proxy_module "/ceno/product/httpd/modules/mod_proxy.so"

#LoadModule proxy_http_module "/ceno/product/httpd/modules/mod_proxy_http.so"

#LoadModule proxy_balancer_module "/ceno/product/httpd/modules/mod_proxy_balancer.so"

 

<Proxy balancer://mycluster>

BalancerMember ajp://192.168.7.18:8009 route=worker1 loadfactor=1

BalancerMember ajp://192.168.7.18:8010 route=worker2 loadfactor=1

</Proxy>

<Location /examples>

ProxyPass balancer://mycluster/examples stickysession=JSESSIONID|jsessionid scolonpathdelim=On

</Location>

 

<Location /balancer-manager>

  SetHandler balancer-manager

</Location>

 

 

 

说明:

##

3.1.如果在httpd –l 命令中能够列出,则不需要在手动导入三个module

如果是使用 apxs 命令安装的,则需要手动添加三个module

3.2. balancer://mycluster 配置apache服务器负载均衡集群

这里使用ajp协议连接tomcat

 

3.3配置访问路径

 

Stickysessio= JSESSIONID|jsessionid  配置同一个sessionid的请求都发往同一台host,等号右边的是放置在url上的parametername 或者cookie 中的name,如果cookie 中的name url中的name 不一致,可以用 | 分隔。

scolonpathdelim=on

jsesseionid 前用;分隔开的路径信息 如果需要获取到,则需要将该参数打开,默认该参数为off

 

 

3.4.配置balancer-manager 用来监控 负载均很集群节点,你可以看到如下图

 

 

4.配置http.conf(http协议)

 

 

#LoadModule proxy_module "/ceno/product/httpd/modules/mod_proxy.so"

#LoadModule proxy_http_module "/ceno/product/httpd/modules/mod_proxy_http.so"

#LoadModule proxy_balancer_module "/ceno/product/httpd/modules/mod_proxy_balancer.so"

 

<Proxy balancer://mycluster>

#BalancerMember ajp://192.168.7.18:8009 route=worker1 loadfactor=1

#BalancerMember ajp://192.168.7.18:8010 route=worker2 loadfactor=1

BalancerMember http://192.168.7.18:8080 route=worker1 loadfactor=5

BalancerMember http://192.168.7.18:8081 route=worker2 loadfactor=1

</Proxy>

 

<Location /examples>

ProxyPass  balancer://mycluster/examples stickysession=JSESSIONID|jsessionid scolonpathdelim=On

</Location>

 

 

<Location />

ProxyPass  balancer://mycluster/ stickysession=JSESSIONID|jsessionid scolonpathdelim=On

</Location>

<Location /balancer-manager>

  SetHandler balancer-manager

</Location>

 

 

 

说明:

 BalancerMember http://192.168.7.18:8080 route=worker1 loadfactor=5

BalancerMember http://192.168.7.18:8081 route=worker2 loadfactor=1

 

将其中的协议由 ajp变成httpd

 

其中route对应的name 要和tomcat conf/server.xml 文件中每个engine 配置的jvmRoute一致。

 

Loadfactor 是负载因子,数字越大,表示请求的概率越大

 


猜你喜欢

转载自lily-tiantian.iteye.com/blog/1389133
今日推荐