zoukankan      html  css  js  c++  java
  • [转]apache的负载均衡配置

    来源:http://steven2011.iteye.com/blog/1296588

    下载: http://httpd.apache.org/ (使用2.2版本进行测试) 
    文档: http://httpd.apache.org/docs/2.2/mod/mod_proxy_balancer.html 

    Apache2.2\conf\httpd.conf 

    1. 启用需要的模块 (找到相应的模块,取消注释即可) 

    LoadModule proxy_module modules/mod_proxy.so 
    LoadModule proxy_balancer_module modules/mod_proxy_balancer.so 
    LoadModule proxy_http_module modules/mod_proxy_http.so 

    #这个是用于新建cookie做session sticky用的,如果使用已有的web server的cookie如JSESSIONID则不需要启用。 
    LoadModule headers_module modules/mod_headers.so 

    2. 配置负载参数 

    /test:代理路径 
    lbmethod:目前有三种选择,byrequests,bytraffic,bybusyness 
    route:负载成员的标识名,用于做session sticky 
    Header:如下配置语义是指当临时变量BALANCER_ROUTE_CHANGED被设置也就是初次建立连接或是上次负载服务器宕掉切换负载服务器的时候,创建cookie名叫ROUTEID,值为.后加配置的route值,如Set-Cookie ROUTEID=.node1 
    stickysession:session标识cookie名 

    Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED 
    <Proxy balancer://cluster_test> 
    BalancerMember http://192.168.1.6:8000/test loadfactor=3 route=node1 
    BalancerMember http://192.168.1.6:9000/test loadfactor=1 route=node2 
    </Proxy> 
    ProxyPass /test balancer://cluster_test lbmethod=byrequests stickysession=ROUTEID 

    还有以下几个属性可以配置: 
    nofailover 默认是off,表示开启失效转移功能,关闭(on)的话如果所选负载成员宕掉,会返回503 Service Temp Unavaliable错误 

    failonstatus可以指定哪些负载成员响应HTTP状态码可以视为负载成员宕掉,如404,500等,默认只视连接错误为负载成员宕掉 

    注意如果apache判定负载成员宕掉,默认1分钟后会重新尝试使用之前宕掉的负载成员。 
    而且对于failonstatus这种情形,只有下次请求的时候才会做到失效转移,第一次还是会给客户端发回对应的错误信息如500或404。 

    补充:我们也可以使用负载成员服务器自带的session cookie如JSESSIONID,以下是针对tomcat的配置。 
    Apache2.2\conf\httpd.conf 

    <Proxy balancer://cluster_test> 
    BalancerMember http://192.168.1.6:8000/test loadfactor=3 route=node1 
    BalancerMember http://192.168.1.6:9000/test loadfactor=1 route=node2 
    </Proxy> 
    ProxyPass /test balancer://cluster_test lbmethod=byrequests stickysession=JSESSIONID 

    apache-tomcat-6.0.18\conf\server.xml 
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="node1">   

    这样 JSESSIONID的值后面就会加上.node1或是.node2如 
    JSESSIONID=3E5F7CC704192E0BFBAF1190A1EF513A.node1 

    注意JSESSIONID区分大小写。 

  • 相关阅读:
    docker 安装 nexus3 初始密码不再是admin123
    eclipse中Tomcat修改项目名称
    WAMP3.1.3自定义根目录
    git学习笔记
    小米和MAC触摸板手势汇总
    IDEA快捷键汇总
    servelet 实现Post接口访问
    LeetCode:Jump Game II
    LeetCode:Trapping Rain Water
    LeetCode: Container With Most Water
  • 原文地址:https://www.cnblogs.com/walkerwang/p/2342688.html
Copyright © 2011-2022 走看看