Apache HTTP Server a un module qui nous permet de balançoire la charge. Voyons comment il est utilisé.
Introduction
Apache HTTP Server possède plusieurs modules avec lesquels vous pouvez faire beaucoup de choses, comme écraser l’URL, utiliser la sécurité SSL ou équilibrer la charge entre plusieurs machines. L’équilibrage de charge consiste en ce que nous utilisons une seule adresse URL et en interne le trafic est redirigé vers différentes machines qui contiennent chacune la même page Web.
Remarque: Dans cet exemple, nous utiliserons deux pages Web différentes uniquement à titre de démonstration de le balançant.
Exigences précédentes
Il faut:
- Avoir un Apache HTTP Server installé et en cours d’exécution.
- Avoir plusieurs emplacements avec la même page Web.
À propos des emplacements : Il peut s’agir de machines indépendantes, chacune avec sa propre URL. Dans notre cas, nous aurons deux pages Web situées dans les dossiers:
/var/www/html/webpage-1/index.html
et:
/var/www/html/webpage-2/index.html
Il est important que dans ces fichiers le contenu soit différent, car sinon nous ne pourrons pas apprécier le balançant.
Exemple de fichiers:
webpage-1/index.html
<html> <head> <title>First Web page</title> </head> <body> <h1>This is the first Web page.</h2> </body> </html>
webpage-2/index.html
<html> <head> <title>Second Web page</title> </head> <body> <h1>This is the second Web page.</h2> </body> </html>
Installation
Le module du balançant s’appelle “proxy_balancer” et pour l’installer vous devez entrer ces commandes:
a2enmod proxy a2enmod proxy_http a2enmod lbmethod_bytraffic a2enmod proxy_balancer
Comme on peut le voir, il est nécessaire d’installer d’autres modules au préalable.
Réglage
En règle générale, presque tout le monde configure Apache dans le fichier suivant:
/etc/apache2/apache2.conf
Personnellement, je préfère configurer les choses séparément car il y a moins de distractions. Pour configurer les modules, on utilise les fichiers spécifiques, qui se trouvent dans le dossier:
/etc/apache2/mods-enabled
Nous éditons le fichier
/etc/apache2/mods-enabled/proxy_balancer.conf
et on laisse comme ça:
<IfModule mod_proxy_balancer.c> <Proxy "balancer://myset"> BalancerMember "http://localhost/webpage-1/index.html" BalancerMember "http://localhost/webpage-2/index.html" Order deny,allow Allow from all ProxySet lbmethod=byrequests </Proxy> ProxyPreserveHost On <Location "/"> ProxyPass "balancer://myset/" ProxyPassReverse "balancer://myset/" </Location> </IfModule> vim: syntax=apache ts=4 sw=4 sts=4 sr noet
De cette manière:
- BalanceMember indique les emplacements sur lesquels balançoire.
- ProxySet lbmethod indique, dans ce cas, que chaque requête doit être effectuée à un endroit différent.
- Location “/” indique que lorsque l’on charge la page http://localhost/ le balançant sera exécuté.
Test
On redémarre le serveur pour qu’il lise la nouvelle configuration avec:
service apache2 restart
Nous chargeons la page initiale de notre Apache HTTP Server:
http://localhost/
Et nous verrons qu’à chaque fois que nous rechargerons la page, le contenu de la page change.
So, what do you think ?