Configuration du Serveur HTTP derrière un répartiteur de charge
De Wiki1000
Version du 13 janvier 2015 à 10:47 par Syfre (discuter | contributions)
Sommaire |
Le serveur HTTP(s) intègre un re-directeur HTTP(s) permettant un fonctionnement derrière un répartiteur de charge (load balancer, LV4) ne gérant pas les sessions. C'est le cas par exemple du répartiteur intégré à Microsoft Azure qui utilise un algorithme round-robin.
Principe
Le principe est le suivant :
- Lorsqu'un service ouvre une session il positionne dans la réponse un cookie de session (SID); ce cookie comporte différentes informations dont l'adresse interne du service ayant ouvert la session.
- Lorsqu'un service reçoit une requête comprenant un cookie de session il analyse se cookie pour déterminer le service tenant la session. Si ce service n'est pas lui même, il redirige la requête vers ce service.
Architecture
Plusieurs architectures sont possibles mais dans le cas d'une virtualisation le plus simple est d'utiliser une machine virtuelle par service.
Il est possible de configurer plusieurs services sur une même machine virtuelle (ou physique) en modifiant le port HTTP de chaque service.
Tip : Vous pouvez partager le même fichier de configuration et remplacer le port du serveur HTTP défini dans le fichier de configuration par une valeur passée sur la ligne de commande du service. |
Configuration d'un serveur Apache en répartiteur
Un serveur Apache peut être configuré comme répartiteur, ceci peut être utile pour tester une configuration.
Voici un exemple de fichier de configuration d'Apache:
#### ##Definition of the proxy ### ProxyRequests off #TODO Change the from part in production mode!!! <Proxy *> Order deny,allow Allow from all </Proxy> #Cluster of ESB #Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED <Proxy balancer://syfrecluster/> BalancerMember http://syfrehost1 route=1 BalancerMember http://syfrehost2 route=2 ProxySet lbmethod=byrequests </Proxy> #All incoming requests will be redirected to the cluster of ESB servers exposing services ProxyPass /balancer-manager ! ProxyPass / balancer://syfrecluster/ ProxyPassReverse / balancer://syfrecluster/ #For dynamic update of balancer members. Access to the page http://localhost:8080/balancer-manager #TODO Change the from part in production <Location /balancer-manager> SetHandler balancer-manager Order Deny,Allow Deny from all Allow from all </Location>