Anzeige:
Ergebnis 1 bis 1 von 1

Thema: Loadbalancing mit Apache 2.2 und mod_proxy

  1. #1
    batlh Daqawlu' taH Avatar von Batosai
    Registriert seit
    May 2003
    Ort
    BurgenLandKreis
    Beiträge
    661

    Loadbalancing mit Apache 2.2 und mod_proxy

    Da Apache Version 2.2 noch nicht all zu lange draußen ist, gibt es im Netz so gut wie keine Beschreibungen wie man sich die neue Funktionalität von mod_proxy für Loadbalancing zu Nutze macht. Deswegen hab ich dieses HowTo geschrieben.

    Zum besseren Verständnis sollte man schon mal mit der httpd.conf gearbeitet haben.

    Verglichen mit mod_jk lässt sich Loadbalancing mit Apache 2.2 und mod_proxy
    relativ einfach konfigurieren (wenn man weiß wie).


    Voraussetzungen:
    Man braucht natürlich Apache Version 2.1 oder höher mit den Modulen mod_proxy, mod_proxy_balancer und mod_proxy_ajp.


    Konfiguration:
    Eine vollständige Konfiguration könnte folgendermaßen aussehen:

    PHP-Code:
    <IfModule mod_proxy_balancer.c>

        <
    Proxy balancer://myCluster>
            
    BalancerMember ajp://localhost:8244 route=localhost8240
            
    BalancerMember ajp://localhost:8254 route=localhost8250
        
    </Proxy>

        <
    Location /ha/>
            
    ProxyPass balancer://myCluster/ha/ stickysession=JSESSIONID
        
    </Location>

        <
    Location /balancer-manager>
            
    SetHandler balancer-manager

            AuthType Basic
            AuthName 
    "Cluster manager "
            
    AuthUserFile /etc/apache2/.htpasswd
            
    Require valid-user
        
    </Location>

    </
    IfModule

    Details:
    Sehen wir uns das im Einzelnen an.

    Wie packen das in eine IfModule-Direktive um sicher zu stellen, das es zu keinem Fehler beim starten von Apache kommt falls das Modul nicht vorhanden ist oder geladen werden kann.

    Musste man bei mod_jk noch mindestens 3 worker definieren und Eigenschaften zuweisen, geht das jetzt viel einfacher:

    PHP-Code:
    <Proxy balancer://myCluster>
            
    BalancerMember ajp://localhost:8244 route=localhost8240
            
    BalancerMember ajp://localhost:8254 route=localhost8250
    </Proxy
    Mit dem Argument balancer:// in der Proxy-Direktive definieren wir einen virtuellen worker myCluster der als Balancer fungiert. Diesen können wir dann ganz einfach die entsprechenden worker zuweisen indem wir sie einfach als Parameter mit dem Keyword 'BalancerMember' in die Direktive schreiben.
    Der Typ eines workers wird als Protokoll angegeben (in diesem Fall ajp://). Möglich sind noch http und ftp.
    Dann kommt Server-Name und Port (in diesem Fall natürlich der AJP-Connector-Port) und dahinter können wir dann verschieden Parameter angeben, zB route, mit dem wir die jvmRoute angeben die wir diesem worker in der server.xml von tomcat gegeben haben. (Was es noch an Parametern gibt steht in der Apache-Dokumentation


    OK, jetzt haben wir den Balancer angelegt und ihm die worker zugewiesen. Jetzt müssen wir bestimmen, bei welchen
    URL-Pattern der balancer benutzt werden soll:

    PHP-Code:
    <Location /ha/>
            
    ProxyPass balancer://myCluster/ha/ stickysession=JSESSIONID
    </Location
    Damit wird für alles was mit /ha/ anfängt der loadbalancer benutzt den wir oben definiert haben.
    Der Wert des Parameter stickysession muss der Name des Cookie sein, der vom Applicationserver (in diesem Fall
    tomcat) gesetzt wird.


    Wir können den balancer und seine workers auch zur Laufzeit konfigurieren (aber keine neuen worker hinzufügen).
    Dazu gibt es als Gegenstück zum jkmanager den balancer-manager.

    PHP-Code:
    <Location /balancer-manager>
            
    SetHandler balancer-manager

            AuthType Basic
            AuthName 
    "Cluster manager "
            
    AuthUserFile /etc/apache2/.htpasswd
            
    Require valid-user
    </Location
    Die Datei .htpasswd muss eventuell noch mit htpasswd2 angelegt werden.
    Geändert von Batosai (09.03.06 um 23:00 Uhr)
    Original geschrieben von corresponder
    die größe des volksbildungslochs ist mit der höhe der auflage der bildzeitung identisch...
    Mein Blog

Ähnliche Themen

  1. Apache führt keine CGI Scripts aus
    Von king_of_tuxland im Forum Linux als Server
    Antworten: 1
    Letzter Beitrag: 29.01.06, 13:54
  2. Apache und Symlinks
    Von Bruce im Forum Linux als Server
    Antworten: 8
    Letzter Beitrag: 19.05.05, 14:51
  3. make modules - fehlermeldung
    Von Nobse im Forum Kompilieren von Kernel und Sourcen
    Antworten: 8
    Letzter Beitrag: 15.11.04, 02:23
  4. von SuSE- zu DebianLinux ?
    Von verve im Forum Linux Allgemein
    Antworten: 5
    Letzter Beitrag: 23.03.04, 19:28
  5. apache 1.3.27 Berechtigung
    Von Kupfer im Forum Linux als Server
    Antworten: 10
    Letzter Beitrag: 30.12.03, 20:45

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •