Apache 负载均衡器-URL 重定向到内部 IP

Apache 负载均衡器-URL 重定向到内部 IP

我正在尝试在 Apache 中设置一个简单的负载均衡器,如下所示

我的单节点负载均衡器位于内部 IP 192.168.1.3 上,配置如下

    <VirtualHost *:80>
            ProxyRequests off        
            ServerName xxx.xxx.xxx.xxx
            # this is my external Static IP 
            <Proxy balancer://mycluster>
                    BalancerMember http://192.168.1.2
                    BalancerMember http://192.168.1.3
                    Require all granted
                    ProxySet lbmethod=byrequests
            </Proxy>
            <Location /balancer-manager>
                    SetHandler balancer-manager
                    Require host example.org
            </Location>
            ProxyPass /balancer-manager !
            ProxyPass / balancer://mycluster/
    </VirtualHost>

我已在路由器上设置将所有 http 请求转发到我的负载均衡器 192.168.1.3

现在,当我尝试在与服务器位于不同网络(例如 xxx.xxx.xxx.xxx)的系统上访问我的应用程序时,我会被重定向到 192.168.1.2 和 192.168.1.3。由于我在不同的网络上,这些重定向毫无意义。我该如何解决这个问题,以便我的设置在从外部 IP 访问时可以正常工作?

答案1

我使用了这个配置,并且运行正常:

ProxyRequests off

<Proxy *>
        Order deny,allow
        Deny from all
        Allow from all
</Proxy>
ProxyTimeout 300


<VirtualHost *:80>
    ServerName xxx.xxx.xxx.xxx
    ProxyPreserveHost On

    <Proxy balancer://myClusterBalancer>
        BalancerMember http://192.168.1.2
        BalancerMember http://192.168.1.3
        ProxySet lbmethod=bytraffic
    </Proxy>

    ProxyPass / balancer://myClusterBalancer/ nocanon
    ProxyPassReverse /  balancer://myClusterBalancer/
</VirtualHost>

相关内容