Apache和Tomcat 负载及转发

1. apache server 一个 httpd-2.2.19-win32-x86

2. tomcat7 server 五个

端口分别为 8081, 8082, 8083, 8084, 8085

对应的项目分别为 /test12, /test12, /test34, /test34,/test5

3. httpd.conf

启用:

mod_proxy.so,mod_proxy_balancer.so,mod_proxy_http.so

添加

ProxyPass /images !

ProxyPass /css !

ProxyPass /js !

#ProxyPassReverse /examples :8081/examples/

ProxyPass /test12 balancer://proxy12/

<Proxy balancer://proxy12>

BalancerMember :8081/test12/

BalancerMember :8082/test12/

</Proxy>

ProxyPass /test34 balancer://proxy34/

<Proxy balancer://proxy34>

BalancerMember :8083/test34/

BalancerMember :8084/test34/

</Proxy>

ProxyPass /test5 :8085/test5/

分别8081, 8082负载test12项目,8083, 8084负载test34, 转发8085

4. 效果

均衡转发到 8081,8082上

均衡转发到 8083, 8084上

转发到8085上

5. 负载分配算法

1) 负载分配算法
      ProxyRequests Off   
      <Proxy balancer://myCluster>  
     BalancerMember :8081   
   BalancerMember :8082
   BalancerMember :8083
    ProxySet lbmethod=bybusyness
    </Proxy>
 lbmethod取值有:
 lbmethod=byrequests 按照请求次数均衡(默认)
 lbmethod=bytraffic 按照流量均衡
 lbmethod=bybusyness 按照繁忙程度均衡(总是分配给活跃请求数最少的服务器)

2) 负载比例分配
 ProxyRequests Off   
 <Proxy balancer://myCluster>  
       BalancerMember :8081 loadfactor=3 
        BalancerMember :8082 loadfactor=3
             BalancerMember :8083 loadfactor=4
             ProxySet lbmethod=bybusyness
 </Proxy>
这样就使得比例为3:3:4

3) 热备份(Hot Standby)
 ProxyRequests Off   
 <Proxy balancer://myCluster>  
    BalancerMember :8081   
    BalancerMember :8082
    BalancerMember :8083
    BalancerMember :8084 status=+H
    ProxySet lbmethod=bybusyness
 </Proxy>  
只要在后面加上status=+H即可,正常情况下请求总是流向8081 8082和8083的,一旦8081 8082和8083有挂掉, Apache会检测到错误并把请求分流给8081。Apache会每隔几分钟检测一下8081 8082和8083的状况,如果8081 8082和8083恢复,就继续使用8081 8082和8083

6. 官方文档地址

#proxy

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/515bdc32e3578313cf059ab7f47fe521.html