Bonjour,
Je souhaites mettre en place une répartition des charges sur un de mes vhosts.
(Je ne suis pas un pro d'apache et j'y vais un peu à l'aveugle.)
J'arrive à quelque chose qui semble marcher. Pour l'instant j'ai ceci dans mon httpd.conf
Pour l'instant cela semble fonctionner comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <VirtualHost *:80> ServerName www.mondomaine.com <Proxy balancer://webbalancer stickysession=MYCOOKIE> BalancerMember http://192.168.10.10:80 route=serveur1 BalancerMember http://192.168.10.11:80 route=serveur2 BalancerMember http://192.168.10.12:80 route=serveur3 </Proxy> ServerAlias mondomaine.com ServerAdmin webmaster@mondomaine.com Header add Set-Cookie "MYCOOKIE=SOMEVALUE.%{BALANCER_WORKER_ROUTE}e; path=/;" env=BALANCER_ROUTE_CHANGED ProxyPass / balancer://webbalancer/ stickysession=MYCOOKIE ProxypassReverse / balancer://webbalancer/ ErrorLog "|d:/Apache2/bin/rotatelogs.exe d:/Apache2/logs/mondomaine_error.%d-%m-%Y.log 86400" CustomLog "|d:/Apache2/bin/rotatelogs.exe d:/Apache2/logs/mondomaine_access.%d-%m-%Y.log 86400" common </VirtualHost>
chaque nouveau client est dirigé sur un des serveurs
un pc client qui est dirigé vers un des serveurs continue à aller vers ce même serveur lors des prochains appels (importants pour moi car j'ai une appli web avec des sessions "autonomes" sur chacun des serveurs du balancer)
si un des serveurs tombe le pc client est automatiquement dirigé vers un des autres serveurs (l'utilisateur perd sa session à ce moment la mais c'est mieux qu'un message d'erreur 200,404, bad proxy gateway ou autres)
Je souhaiterais faire évoluer ce fonctionnement.
1- Aujourd'hui si un client est dirigé vers le serveur1 et qu'il se reconnecte le lendemain il sera encore redirigé vers le serveur1 le lendemain. Sur les différents serveurs du balancer il y a un timeout de session à 20 minutes. je souhaiterais donc que le loadblanacing intègre ce timeout et que donc, si un utilisateur se reconnecte le lendemain il ne soit pas obligatoirement redirigé vers le même serveur que la veille.
Comment faire ?
2-serveur de débordement :
Je souhaites mettre en place ce que j'appel un serveur de débordement.
Le principe de fonctionnement serait le suivant :
j'ai un 4eme serveur définie dans mon balancer mais il n'est pas utilisé en temps normal lors des appels des clients.
J'ai besoin de faire une maintenance sur le serveur 1, à ce moment la j'active le serveur 4, les nouveaux clients sont dirigés vers les serveurs 2,3 et 4 et ceux qui a avait des sessions en cours sur le serveur 1 continue d'être dirigé vers ce serveur et j'attends gentillement qu'il n'y ait plus de sessions actives sur mon serveur1 pour faire ma maintenance.
Une fois ma maintenance terminé, je réactive mon serveur 1 et désactive mon serveur 4. Les nouveaux clients sont donc dirigés vers les serveurs 1,2 et 3 et ceux qui avait des sessions en cours sur le serveur 4 continue d'être dirigé vers le serveur 4.
Comment puis je faire cela (si c'est possible bien sur) ? et comment puis je faire ces changements "à chaud", c'est à dire sans avoir besoin de redémarré complétement mon serveur apache (car c'est un serveuren production)?
ps : J'utilise apache 2.2 sous windows
Partager