WIKI LWS - L'hébergeur Web accessible à tous WIKI LWS - L'hébergeur Web accessible à tous

Comment configurer une solution simple de load balancing avec apache2 ?

Load balancing qu'est ce que c'est ?

En informatique la répartition de charge (anglais load balancing) est un ensemble de techniques permettant de distribuer une charge de travail entre différents ordinateurs d'un groupe.

Ces techniques permettent à la fois de répondre à une charge trop importante d'un service en la répartissant sur plusieurs serveurs, et de réduire l'indisponibilité potentielle de ce service que pourrait provoquer la panne logicielle ou matérielle d'un unique serveur.

Ces techniques sont par exemple très utilisées dans le domaine des services HTTP où un site à forte audience doit pouvoir gérer des centaines de milliers de requêtes par seconde.

La répartition de charge permet de distribuer des applications à travers un réseau. Cette technique permet de distribuer n'importe quel service entre différents ordinateurs et emplacements géographiques. Elle est principalement utilisée pour les serveurs web, ainsi que les points d'accès VPN, les proxy ou les pare-feu.

Il existe des logiciels pour réaliser le load balancing :

HAProxy (en), logiciel libre de répartition de charge Linux Virtual Server, solution de répartition de charge open-source pour Linux.

Solution pour apache2 :

  • Haproxy : HAProxy est une solution libre, très rapide et fiable offrant une haute disponibilité , répartition de charge , et le proxy pour TCP et HTTP applications basées en répartissant les requêtes entre plusieurs serveurs. Il est écrit en C et a la réputation d'être rapide, efficace (en termes de processeur et de mémoire) et stable.
  • mod_proxy et mod_proxy_balancer

Mise en place d'un load balancing Apache2 :

Vous devez posséder deux serveurs , dans mon cas ce sont deux serveurs VPS.

Le premier :

Le deuxième :

Pour créer un load balancing avec apache2, nous pouvons utiliser des modules fournit avec Apache. Vous aurez besoin de a2enmod ; exécuter cette commande :

 a2enmod proxy proxy_balancer proxy_http status lbmethod_*

Ensuite, nous devons changer la configuration dans l'un des fichiers de conf d'apache :

 nano /etc/apache2/sites-enabled/000-default.conf

Ajoutez les instructions suivantes à <VirtualHost>:

 <Proxy balancer: // mycluster> 
 BalancerMember http://adresse_ip_de_premier_serveur:80
 BalancerMember http://adresse_ip_du_deuxième_serveur:80
 </ Proxy> 
 ProxyPass / balancer: // mycluster
 ProxyPassReverse /test balancer://mycluster

Pour enregistrer, appuyez sur CTRL + X, puis O ou Y et validez.

Puis aller dans /etc/apache2/mods-enabled/proxy_balancer.conf

 nano /etc/apache2/mods-enabled/proxy.conf

Modifier le fichier comme suivi :

 #ProxyRequests On
 <Proxy *>
 #        AddDefaultCharset off
 #        Order deny,allow
          Allow from all
 #        Allow from .example.com
 </Proxy>

Décommenttez juste les balises <Proxy> et renseigner à la place de deny from all , Allow from all ; sauvegarder puis quitter.

Puis :

 service apache2 restart

Voilà le load balancing est mise en place sur vos deux serveurs :

Allons sur l'index.html des deux serveurs et vous verrez que l'équilibrage a bien été réalisé car pour mon part le serveur 1 contient beaucoup plus de données que le 2 donc il me conseille via le load balancing d'utiliser le deuxième serveur.

À l'adresse du serveur 1 :

Voilà sur le serveur 1, il nous renvoie automatiquement sur le 2 ; le load balancing est mise en place ; donc maintenant il faut laisser le serveur 1 de côté et utilisé le deuxième et quand le deuxième sera supérieur au premier alors inversement.

(l'image a disparu puisque dans le code html elle renseigné dans le serveur 1 or c'est la page du serveur 2 qui apparaît).

À l'adresse du serveur 2 :

alexandre_load_balancing.txt · Dernière modification: 2014/10/09 15:29 par lws
 
Sauf mention contraire, le contenu de ce wiki est placé sous la licence suivante : CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki