【问题标题】:Apache load balancing with proxy_balancer使用 proxy_balancer 进行 Apache 负载平衡
【发布时间】:2018-03-12 23:09:51
【问题描述】:

我在配置 apache 2.4 以使用它的 proxy_balancer mod 时遇到困难。我的用例相当简单。请求正在到达应该负载平衡到集群的 apache 节点。这是我的config

<VirtualHost *:80>

    ProxyRequests off

    ServerName localhost

    <Proxy balancer://geocode>

            BalancerMember "http://192.168.2.11:8080/ors/status"
            BalancerMember "http://192.168.2.35:8080/ors/status"

            Require all granted

            ProxySet lbmethod=byrequests

    </Proxy>

    <Location /balancer-manager>

            SetHandler balancer-manager

            Require all granted

    </Location>

    ProxyPass /balancer-manager !
    ProxyPass "/geocodelb" "balancer://geocode"
    ProxyPass "/geocode" "http://192.168.2.35:8080/ors/status"

</VirtualHost>

导航到localhost:80/geocodelb 时,我收到404 Not Found

129.206.205.50 - - [01/Oct/2017:19:39:55 +0000] "GET /geocodelb 
HTTP/1.1" 404 164 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; 
rv:56.0) Gecko/20100101 Firefox/56.0"

localhost:80/geocode 有效:

129.206.205.50 - - [01/Oct/2017:19:40:07 +0000] "GET /geocode HTTP/1.1" 
200 757 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:56.0) 
Gecko/20100101 Firefox/56.0"

../status指向一个tomcat实例并返回一个json对象)

如果我将 BalancerMembers 的 url 替换为任意的东西 - 例如 google.com - 它可以工作。

我也可以通过localhost:80/balancer-manager 联系平衡器经理并获取正确的信息。如果我没记错的话,它告诉我一切看起来都很好(见截图)。我在这里错过了什么?

【问题讨论】:

    标签: apache vhosts mod-proxy-balancer


    【解决方案1】:

    这不起作用的原因是 balancermember 必须是服务器的 url,没有路径。该路径将被添加到 ProxyPass 指令中,例如 balancer://orsbackend/ors/geocode。这里的工作配置:

    <VirtualHost *:80>
    
            ProxyRequests off
    
            ServerName localhost
    
            <Proxy balancer://orsbackend>
                    BalancerMember "http://192.168.2.11:8080"
                    BalancerMember "http://192.168.2.35:8080"
                    ProxySet lbmethod=byrequests
            </Proxy>
    
            <Location /balancer-manager>
                    SetHandler balancer-manager
    
                    Require all granted
            </Location>
    
            ProxyPass /balancer-manager !
    
            ProxyPass "/geocode" "balancer://orsbackend/ors/geocode"
    
    </VirtualHost>
    

    【讨论】:

      猜你喜欢
      • 2012-06-04
      • 1970-01-01
      • 2018-12-20
      • 2013-03-24
      • 1970-01-01
      • 1970-01-01
      • 2016-12-28
      • 2019-10-20
      • 1970-01-01
      相关资源
      最近更新 更多