多站点 Apache 负载均衡器不同域

多站点 Apache 负载均衡器不同域

我正在设置一个有 2 个成员的 apache 负载均衡器。这三台服务器是使用 apache 2.4.9 的 Windows Server 2012。我正在努力使一个负载平衡集群服务于多个站点。目前,两个设置是 localhost 和 test1,当我转到 localhost 时,一切正常,负载均衡器正在运行...当我转到 test1 时,子服务器正在加载 localhost 配置(这是默认配置),我认为这就像 test1 url 没有传递给工作人员,因此工作人员无法识别它。

这是负载平衡器上本地主机的虚拟主机配置(请注意,为了客户端的方便,它已通用化)...

  <VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "E:/generic-page/www"
    ServerName localhost
    ErrorLog "E:/_logs/localhost-error.log"
    CustomLog "E:/_logs/localhost-access.log" common


     ProxyRequests Off  
        <Proxy *>
          AllowOverride All
          Require all granted
        </Proxy>    
        ProxyPass /balancer-manager !
        ProxyPass / balancer://mycluster/ stickysession=PHPSESSIONID nofailover=On

        <Location /balancer-manager>
           SetHandler balancer-manager
           Require all granted
            </Location>


        #ProxyPassReverse / http://tstweb1.somewhere.org:80
        #ProxyPassReverse / http://tstweb2.somewhere.org:80
        <Proxy balancer://mycluster>
          BalancerMember http://tstweb1.somewhere.org:80 loadfactor=1
          BalancerMember http://tstweb2.somewhere.org:80 loadfactor=2
          ProxySet lbmethod=byrequests
        </Proxy>
    <Location />
           ProxyPass balancer://mycluster/ stickysession=PHPSESSIONID
        </Location>
</VirtualHost>

以下是负载均衡器上的 test1 的样子……

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "E:/test1/trunk"
    ServerName test1
    ErrorLog "E:/test1/_logs/test1-error.log"
    CustomLog "E:/test1/_logs/test1-access.log" common

    ProxyRequests Off   
    <Proxy *>
      AllowOverride All
      Require all granted
    </Proxy>    
    ProxyPass /balancer-manager !
    ProxyPass / balancer://test1cluster/ stickysession=PHPSESSIONID nofailover=On

    <Location /balancer-manager>
       SetHandler balancer-manager
       Require all granted
        </Location>
    <Location />
       ProxyPass balancer://test1cluster/ stickysession=PHPSESSIONID
    </Location>

    #ProxyPassReverse / http://tstweb1.somewhere.org:80
    #ProxyPassReverse / http://tstweb2.somewhere.org:80
    <Proxy balancer://test1cluster>
      BalancerMember http://tstweb1.somewhere.org:80 loadfactor=1
      BalancerMember http://tstweb2.somewhere.org:80 loadfactor=2
      ProxySet lbmethod=byrequests
    </Proxy>
</VirtualHost>

在每台工作机器上,我都有一个标准的虚拟主机设置。没有代理传递,只有标准配置,如果域指向它,机器就能正常工作。

这是我第一次尝试设置这一切,因此我欢迎任何可以帮助我让多个域和站点在单个集群上工作的反馈。

有人知道如何解决这个问题吗?

相关内容