[Tutoriels] Configuration d’un cluster Apache 2 avec HAProxy
Bastien Louche | 03/05/2010 | 14:41J’ai décidé d’utiliser les machines virtuelles offertes par OVH pendant la phase de test de son offre Cloud Computing, pour vous faire un tutoriel sur la configuration d’un cluster Apache 2 avec HAProxy pour la partie équilibrage de charges.
Il faut donc 3 serveurs, 1 pour HAProxy, et minimum 2 pour le cluster Apache 2, on utilisera un système vierge sous Debian Lenny.
Voici donc un rapide schéma de la mise en place :
Les adresses IP utilisées sont des IP publiques appartenant au Cloud Computing d’OVH, il faudra donc les modifier pendant vos configurations personnelles.
Dans un premier temps on va configurer les serveurs Apache 2 (web1-cloud et web2-cloud) :
apt-get install apache2
Ensuite on créer le fichier qui sera testé par HAProxy pour vérifier que le serveur Apache 2 est opérationnel :
touch /var/www/haproxytest.txt
On va alors modifier légérement la configuration de :
nano /etc/apache2/sites-available/default
Pour ajouter une nouvelle ligne et remplacer le CustomLog afin d’éviter que les logs d’Apache 2contiennent les checks de HAProxy :
SetEnvIf Request_URI « ^/haproxytest\.txt$ » dontlog
CustomLog /var/log/apache2/access.log combined env=!dontlog
On peut maintenant redémarrer Apache 2, les serveurs du cluster sont configurés :
/etc/init.d/apache2 restart
On se connecte sur le serveur qui va s’occuper de HAProxy :
apt-get install haproxy
On supprime la configuration par défaut de HAProxy et on re-créer le fichier pour éditer notre configuration :
rm -f /etc/haproxy/haproxy.cfg
nano /etc/haproxy/haproxy.cfg
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
#log loghost local0 info
maxconn 4096
#debug
#quiet
user haproxy
group haproxy
defaults
log global
mode http
option httplog
option dontlognull
retries 3
redispatch
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen blweb 178.32.121.84:80
mode http
stats enable
stats auth user:password
balance roundrobin
cookie SERVID prefix
option httpclose
option forwardfor
option httpchk HEAD /haproxytest.txt HTTP/1.0
server web1-cloud 178.32.114.13:80 cookie A check
server web2-cloud 178.32.121.231:80 cookie B check
On peut maintenant lancer HAProxy :
/etc/init.d/haproxy start
Vous pouvez maintenant vous rendre sur l’adresse IP de votre serveur HAProxy via le navigateur de votre choix pour admirer le résultat !
Une petite astuce consiste à modifier le fichier /var/www/index.html pour mieux visualiser quel serveur a répondu à chaque rafraichissement de la page.
A noter que dans notre configuration nous utilisons le paramètre stats enable qui permet à l’aide des identifiants de stats auth de se connecter via http://IP-HAProxy/haproxy?stats à une interface web présentant les statistiques d’utilisation de HAProxy et des différents serveurs Apache 2.
Commentaires récents