2009-06-03 15 views
1

Ich habe Mod-Proxy und Mod-Proxy-Balancer-Setup als Load Balancing Reverse Proxy. Etwas wie folgt aus:Apache Mod-Proxy Load Balancer Wartung

<Proxy balancer://example> 
    BalancerMember http://hostname:8000 keepalive=on 
    BalancerMember http://hostname:8001 keepalive=on 
</Proxy> 

ProxyPass/balancer://example/ 
ProxyPassReverse/balancer://example/ 
ProxyPreserveHost on 
ProxyRequests Off 

Gibt es eine einfache Möglichkeit, dies zu gründen eine statische Wartung Seite zu zeigen, wenn alle Mitglieder der Ausgleichsgruppe nach unten sind? Ich habe das zuvor mit einem Hardware Load Balancer gemacht und es war sehr nützlich.

Antwort

4

Vielleicht können Sie einen Hot Standby verwenden. Das folgende Beispiel ist aus dem ProxyPass Directive Abschnitt, wo es heißt „Hot-Standby-Einrichtung, die nur verwendet werden, wenn keine andere Mitglieder verfügbar sind“

ProxyPass/balancer://hotcluster/ 
<Proxy balancer://hotcluster> 
BalancerMember http://1.2.3.4:8009 loadfactor=1 
BalancerMember http://1.2.3.5:8009 loadfactor=2 
# The below is the hot standby 
BalancerMember http://1.2.3.6:8009 status=+H 
ProxySet lbmethod=bytraffic </Proxy> 
+0

Das ist eine gute Idee, aber um vollständig zu arbeiten, muss es mit einer Rewrite-Regel für das "Standby" -Mitglied kombiniert werden, um den URL-Pfad zu ignorieren. – schickb

1

Als Alternative zu RewriteRule können Sie das gleiche tun mit entsprechende ErrorDocument-Anweisungen. Wir machen so etwas, in dem der Proxy-Server selbst statische Fehlerseiten hostet und der "hot-standby" -Host http://localhost/some-app/ ist.

0

Da Ihr Proxy die einzige Seite zu sein scheint (wahrscheinlich in einem VirtualHost), können Sie Fehlerseiten einfach überschreiben. Apache erzeugt einen Fehler 503, so würde dies wie folgt aussehen:

# Document root is required because error documents use relative paths 
DocumentRoot /var/www/html/ 
# Allow access to document root directory 
<Directory /var/www/html/> 
    Order allow,deny 
    allow from all 
</Directory> 
# Actual change: If service is unavailable (no member available), show this page 
ErrorDocument 503 /maintenance.html 

Wenn Sie Bilder in der Wartung HTML verwenden möchten, wenden Sie sich bitte nicht, dass Sie absolute Pfade verwenden (zB /image.jpg) lädt/var /www/html/image.jpg.