2017-10-01 2 views
0

Ich habe Schwierigkeiten bei der Konfiguration von Apache 2.4, um dessen Proxy_balancer Mod zu verwenden. Mein Anwendungsfall ist ziemlich geradlinig. Anforderungen erreichen den Apache-Knoten, der in den Cluster geladen werden sollte. Das ist mein config:Apache Load Balancing mit proxy_balancer

<VirtualHost *:80> 

    ProxyRequests off 

    ServerName localhost 

    <Proxy balancer://geocode> 

      BalancerMember "http://192.168.2.11:8080/ors/status" 
      BalancerMember "http://192.168.2.35:8080/ors/status" 

      Require all granted 

      ProxySet lbmethod=byrequests 

    </Proxy> 

    <Location /balancer-manager> 

      SetHandler balancer-manager 

      Require all granted 

    </Location> 

    ProxyPass /balancer-manager ! 
    ProxyPass "/geocodelb" "balancer://geocode" 
    ProxyPass "/geocode" "http://192.168.2.35:8080/ors/status" 

</VirtualHost> 

Wann localhost:80/geocodelb Navigation I erhalten 404 Not Found:

129.206.205.50 - - [01/Oct/2017:19:39:55 +0000] "GET /geocodelb 
HTTP/1.1" 404 164 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; 
rv:56.0) Gecko/20100101 Firefox/56.0" 

aber localhost:80/geocode Werke:

129.206.205.50 - - [01/Oct/2017:19:40:07 +0000] "GET /geocode HTTP/1.1" 
200 757 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:56.0) 
Gecko/20100101 Firefox/56.0" 

(Die ../status zeigt auf eine Tomcat-Instanz und gibt eine json Objekt)

Wenn ich die URLs der BalancerMembers durch etwas Willkürliches - wie google.com - ersetze, funktioniert es.

Ich kann den Balancer-Manager auch bei localhost:80/balancer-manager erreichen und die richtigen Informationen erhalten. Wenn ich mich nicht irre, sagt es mir, dass alles in Ordnung ist (siehe Screenshot). Was fehlt mir hier?

enter image description here

Antwort

0

Der Grund dafür nicht funktioniert, dass die balancermember eine URL zu einem Server sein muss, ohne Pfad. Der Pfad muss in der ProxyPass-Direktive wie dieser balancer://orsbackend/ors/geocode hinzugefügt werden. Hier die Arbeitskonfiguration:

<VirtualHost *:80> 

     ProxyRequests off 

     ServerName localhost 

     <Proxy balancer://orsbackend> 
       BalancerMember "http://192.168.2.11:8080" 
       BalancerMember "http://192.168.2.35:8080" 
       ProxySet lbmethod=byrequests 
     </Proxy> 

     <Location /balancer-manager> 
       SetHandler balancer-manager 

       Require all granted 
     </Location> 

     ProxyPass /balancer-manager ! 

     ProxyPass "/geocode" "balancer://orsbackend/ors/geocode" 

</VirtualHost>