Multi-Site Apache Load Balancer verschiedene Domänen

Multi-Site Apache Load Balancer verschiedene Domänen

Ich arbeite daran, einen Apache-Load Balancer mit 2 Mitgliedern einzurichten. Diese drei Server sind Windows Server 2012 mit Apache 2.4.9. Ich arbeite daran, einen Load Balancing-Cluster einzurichten, der mehrere Sites bedient. Im Moment sind zwei eingerichtet, localhost und test1. Wenn ich zu localhost gehe, ist alles in Ordnung, der Load Balancer funktioniert ... Wenn ich zu test1 gehe, laden die Subserver die localhost-Konfiguration (was die Standardeinstellung ist). Ich denke, das liegt daran, dass die URL von test1 nicht an die Worker weitergegeben wird, sodass die Worker sie nicht identifizieren können.

So sieht die virtuelle Hostkonfiguration für den lokalen Host auf dem Load Balancer aus [beachten Sie, dass sie dem Client zuliebe allgemein gehalten ist] …

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

So sieht Test1 auf dem Load Balancer aus …

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

Auf jedem der Arbeitscomputer habe ich ein Standard-Setup für virtuelle Hosts. Kein Proxy-Pass, nur Standardkonfigurationen, sodass der Computer einwandfrei funktionieren würde, wenn die Domäne darauf verweist.

Dies ist mein erster Versuch, dies alles einzurichten, daher freue ich mich über jedes Feedback, das mir dabei helfen kann, mehrere Domänen und Sites auf einem einzigen Cluster zum Laufen zu bringen.

Hat jemand eine Idee, wie dieses Problem behoben werden kann?

verwandte Informationen