Le loadbalancing
En français : répartition de charge. On peut y avoir recours pour absorber une trop forte charge applicative, faire de la haute disponibilité, etc...Les modules apache à charger
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_connect_module modules/mod_proxy_connect.so
La configuration
Dans l'exemple on a 4 serveurs frontaux 3 nominaux (192.168.1.1, 192.168.1.2 et 192.168.1.3) et 1 backup (192.168.1.4) désactivé par défaut.On aura besoin d'un sticky session pour forcer le client à retourner toujours sur le même serveur. On peut se servir d'un cookie distribué par l'application ou en attribuer un d'office.
Ne pas oublier d'activer l'interface d'administration qui permet entre autre de sortir un serveur du groupe.
#definition du groupe de serveurs
<Proxy balancer://load_test>
BalancerMember http://192.168.1.1:8080/test loadfactor=33 route=serveur1
BalancerMember http://192.168.1.2:8080/test loadfactor=33 route=serveur2
BalancerMember http://192.168.1.3:8080/test loadfactor=33 route=serveur3
BalancerMember http://192.168.1.4:8080/test loadfactor=33 route=serveur4 status=D
</Proxy>
# stickysession
#Si Application java JSESSIONID
#Si application php phpsessid
#sinon on cree un cookie contenant le nom du serveur
#Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
ProxyPass /test balancer://load_test stickysession=JSESSIONID|jsessionid nofailover=Off timeout=45 failonstatus=503
ProxyPassReverse /test http://192.168.1.1:8080/test
ProxyPassReverse /test http://192.168.1.2:8080/test
ProxyPassReverse /test http://192.168.1.3:8080/test
ProxyPassReverse /test http://192.168.1.4:8080/test
# definition de l'interface d'administration
<Location /balancer-manager>
SetHandler balancer-manager
Order Deny,Allow
Allow from 127.0.0.1
</Location>
Aucun commentaire:
Enregistrer un commentaire