2009-06-03 7 views
1

J'ai le paramétrage proxy-mod et proxy-équilibreur comme proxy inverse d'équilibrage de charge. Quelque chose comme ceci:Maintenance de l'équilibreur de charge du proxy mod Apache

<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 

est-il un moyen simple de configurer cela pour afficher une page de maintenance statique lorsque tous les membres du groupe d'équilibrage sont en baisse? Je l'ai déjà fait avec un équilibreur de charge matériel et c'était très utile.

Répondre

4

Peut-être que vous pouvez utiliser une veille à chaud. L'exemple ci-dessous est de la ProxyPass Directive section où il est dit « Mise en place d'un hot-veille, qui ne sera utilisé que si aucun autre sont disponibles »

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

C'est une bonne idée, mais pour fonctionner correctement, il faudra la combiner avec une règle de réécriture pour que le membre "en attente" ignore le chemin de l'URL. – schickb

1

Comme alternative à rewriterule vous pouvez faire la même chose avec les directives ErrorDocument appropriées. Nous faisons quelque chose comme ceci dans lequel le serveur proxy lui-même héberge des pages d'erreur statiques et l'hôte "hot-standby" est http://localhost/some-app/.

0

Puisque votre proxy semble être la seule page (probablement dans un VirtualHost), vous pouvez simplement remplacer les pages d'erreur. Apache produit une erreur 503, donc cela ressemblerait à ceci:

# 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 

Si vous souhaitez utiliser des images à l'intérieur du html de maintenance, s'il vous plaît pas que vous devez utiliser des chemins absolus (par exemple /image.jpg) se charge/var /www/html/image.jpg.

Questions connexes