2017-06-19 3 views
0

erzwingen Ich habe ein Load Balancer in Apache mit derzeit nur zwei Mitgliedern. Ich möchte, dass die mit "admin" beginnenden URLs einer bestimmten Instanz zugeordnet werden (http://localhost:16666/), da die Verwaltungssite Zugriff auf Dateien auf dem CDN benötigt, das sich ebenfalls auf diesem Computer befindet. Ich könnte damit umgehen, indem ich diesen Ordner auf dem anderen Server installiere oder einen separaten Dienst implementiere, aber das ist das Letzte, was ich jetzt möchte. Ich wollte gerade eine neue Proxy-Pass-Regel erstellen, um diese dem Member und nicht dem Balancer zuzuordnen, aber es ignoriert sie einfach.URL-Muster zu einem bestimmten Balancer-Mitglied in Apache

Der wichtige Teil meiner vhost config:

  <Location /balancer-manager> 
       SetHandler balancer-manager 
      </Location> 

      <Proxy balancer://videoportal> 
        BalancerMember http://localhost:16666 
        BalancerMember http://example.com:16666 
        Require all granted 
        ProxySet lbmethod=byrequests 
      </Proxy> 

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

      ErrorLog /var/log/apache2/videoportal-error.log 

      ProxyPass /balancer-manager ! 
      ProxyPass "/admin" "http://localhost:16666/admin" 
      ProxyPassReverse "/admin" "http://localhost:16666/admin" 

      ProxyPass/balancer://videoportal/ 
      ProxyPassReverse/balancer://videoportal/ 
      ProxyRequests Off 

Ratschläge, was mache ich falsch?

Antwort

0

Zuerst mischen Apache 2.2 und Apache 2.4 Konfiguration

In Apache 2.2 Verwendung

Order deny,allow 
Allow from all 

// Ihre Apache-Konfiguration //

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

In Apache 2.4

Require all granted 

// Ihre Apache-Konfiguration //

<Proxy balancer://videoportal> 
    ... 
    Require all granted 
    ProxySet lbmethod=byrequests 
</Proxy> 

Zweitens versuchen, setzen die/admin vor dem Ausgleichs Definition

... 
    SetHandler balancer-manager 
</Location> 

ProxyPass "/admin" "http://localhost:16666/admin" 
ProxyPassReverse "/admin" "http://localhost:16666/admin" 

<Proxy balancer://videoportal> 
     BalancerMember http://localhost:16666 
     ... 
+0

Danke, Sie haben Recht, über die Misch Regeln der Ordnung/erfordern. – Tacsiazuma

0

ich herausgefunden, was das Problem war.

ich einen Standort Regel für diese erstellt und einen Header zu verfolgen hinzugefügt, wenn es funktioniert:

 <Location /balancer-manager> 
      SetHandler balancer-manager 
     </Location> 

     <Proxy balancer://videoportal> 
       BalancerMember http://localhost:16666 
       BalancerMember http://example.com:16666 
       Require all granted 
       ProxySet lbmethod=byrequests 
     </Proxy> 

     <Proxy *> 
       Require all granted 
     </Proxy> 

     ErrorLog /var/log/apache2/videoportal-error.log 

     ProxyPass /balancer-manager ! 

     # This is the new part 
     <Location "/admin"> 
      ProxyPass "http://localhost:16666/admin" 
      ProxyPassReverse "http://localhost:16666/admin" 
      Header set ADMIN "true" 
     </Location> 

     # end of new part 

     ProxyPass/balancer://videoportal/ 
     ProxyPassReverse/balancer://videoportal/ 
     ProxyRequests Off 
Verwandte Themen