Multi-site Apache Load Balancer różnych domen

1

Pracuję nad konfiguracją modułu równoważenia obciążenia apache z 2 członkami. Te trzy serwery to Windows Server 2012 używający apache 2.4.9. Pracuję nad tym, aby jeden klaster równoważący obciążenie obsługiwał wiele witryn. Na razie dwa są ustawione localhost i test1, kiedy idę do localhost, wszystko działa dobrze, moduł równoważenia obciążenia działa ... Kiedy przechodzę do test1, serwery podrzędne ładują konfigurację localhost (która jest domyślna) Myślę, że to coś tak jak adres URL testu1 nie jest przekazywany pracownikom, więc pracownicy nie mogą go zidentyfikować.

Oto, jak wygląda konfiguracja wirtualnego hosta dla hosta lokalnego w module równoważenia obciążenia [uwaga, że ​​jest on generyczny dla dobra klienta] ....

  <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>

Oto jak wygląda test1 na module równoważenia obciążenia ...

<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>

Na każdej maszynie roboczej mam standardową konfigurację hosta wirtualnego. bez przekazywania proxy, tylko standardowe konfiguracje, które komputer działałby dobrze, gdyby domena wskazywała na to.

Po raz pierwszy próbuję to wszystko skonfigurować, dlatego z zadowoleniem przyjmuję wszelkie opinie, które mogą pomóc mi uzyskać dostęp do wielu domen i witryn do pracy w jednym klastrze.

Czy ktoś ma jakieś pomysły, jak rozwiązać ten problem?

Scott Bonner
źródło
Czy nie powinno <Proxy balancer://test1cluster>być tak samo na obu serwerach? Nie widziałem jeszcze zbyt wiele, ale wydaje mi się, że nazwa powinna być taka sama u wszystkich członków
Joey