Seit apache-2.1 (bzw. stable: httpd-2.2) gibt es die Module proxy_balancer_module (mod_proxy_balancer) und proxy_ajp_module (mod_proxy_ajp).
Die Konfiguration ist im folgenden beschrieben.
/etc/httpd/conf.d/proxy_ajp.conf
<Proxy balancer://tomcat5lb>
BalancerMember ajp://tomcat1:8009 route=tomcat1
BalancerMember ajp://tomcat2:8009 route=tomcat2
</Proxy>
<Location /application/>
ProxyPass balancer://tomcat5lb/application/ stickysession=JSESSIONID
</Location>
<Location /balancer-manager>
SetHandler balancer-manager
AuthType Basic
AuthName "Cluster manager "
AuthUserFile /etc/httpd/clustermanagerpasswd
Require valid-user
</Location>
Mit dem Argument balancer:// im <Proxy...>-Abschnitt wird ein virtueller worker tomcat5ln definiert. Dieser arbeitet als Loadbalancer. Die entsprechenden worker werden mit dem Keyword BalancerMember gesetzt. Der Typ eines workers wird als Protokoll angegeben (in diesem Fall ajp://). 1), gefolgt von Servername 2) und Port (in diesem Fall natürlich der AJP-Connector-Port) 3). Dahinter können wir dann verschieden Parameter angeben, z.B. route, mit dem wir die jvmRoute angeben die wir diesem worker in der server.xml von tomcat gegeben haben.
Über <Location...> wird definiert, wie der (bei mod_jk: JkMount) abgebildet wird. Hier wird alles, was auf /application/ passt, an den entsprechenden balancer weitergegeben.
Die Location balancer-manager ist für die Steuerung und Kontrolle des Balancers via Web-Interface definiert.
Die Ausgabe sieht dann wie folgt aus...
| StickySession | Timeout | FailoverAttempts | Method |
|---|---|---|---|
| jsessionid | 0 | 1 | byrequests |
| Worker URL | Route | RouteRedir | Factor | Status |
|---|---|---|---|---|
| ajp://192.168.200.101:8009 | tomcat1 | 1 | Ok | |
| ajp://192.168.200.102:8009 | tomcat2 | 1 | Ok |
Die Balancer Settings können über den “Balancer-Manager” via Web-Interface geändert werden.
... werden in Kürze bereitgestellt ... → http://rpms.serviert.de