Apache 负载均衡器不会转发到第二个平衡成员

Apache 负载均衡器不会转发到第二个平衡成员

我正在尝试找出我的 Apache 配置出了什么问题,导致平衡器无法在端口 9001 上调用第二个 BalanceMember。或者甚至是某种故障排除选项。Apache 日志是空的。

使用以下配置,apache 正常启动,请求按预期从 80 转发到 9000。但是,当我关闭在 9000 上运行的服务时,在 9001 上运行的服务不会在对端口 80 的请求上被调用。我可以直接访问在 9001 上运行的服务,因此我确信它正在运行并且可用。

   <VirtualHost X.X.X.X:80>
    ServerName myportal.com
    DocumentRoot /var/www/drig/data/www/myportal.com
    SuexecUserGroup drig drig

ProxyStatus on
ProxyPreserveHost on

    <Location /balancer-manager>
            SetHandler balancer-manager

            Order Deny,Allow
            Allow from all

    </Location>

    <Proxy balancer://mycluster>
            BalancerMember http://localhost:9000
            BalancerMember http://localhost:9001 status=+H
    </Proxy>
    ProxyPass /balancer-manager !
    ProxyPass / balancer://mycluster/

</VirtualHost>

答案1

尝试以下配置

<VirtualHost *:80>
        ProxyRequests off     
        ServerName myportal.com

        <Proxy balancer://mycluster>
                BalancerMember http://localhost:9000
                BalancerMember http://localhost:9001

                Order Deny,Allow
                Deny from none
                ProxySet lbmethod=byrequests
        </Proxy>

        <Location /balancer-manager>
                SetHandler balancer-manager
                Order deny,allow
                Allow from all
        </Location>

        ProxyPass /balancer-manager !
        ProxyPass / balancer://mycluster/

</VirtualHost>

答案2

问题最终是 iptables 阻止了连接。这是在 EC2 实例上运行的,当我运行:

service iptables stop

通过上述配置,连接成功。

相关内容