首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于proxy_balancer的Apache负载平衡

基于proxy_balancer的Apache负载平衡
EN

Stack Overflow用户
提问于 2017-10-01 19:23:22
回答 1查看 881关注 0票数 0

我在配置Apache2.4使用它的proxy_balancer模块时遇到了困难。我的用例相当直接。请求正在到达apache节点,这个节点应该是负载平衡的集群。这是我的config

代码语言:javascript
复制
<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

代码语言:javascript
复制
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的工作原理是:

代码语言:javascript
复制
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的平衡器经理并获得正确的信息.如果我没有弄错的话,那就是告诉我一切看起来都很好(见截图)。我在这里错过了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-02 07:42:11

此操作不起作用的原因是,平衡器成员必须是服务器的url,没有路径。路径将被添加到ProxyPass指令中,如下面的balancer://orsbackend/ors/geocode。在这里,工作配置:

代码语言:javascript
复制
<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>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46516036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档