Bastien Louche

Systèmes – Réseaux – Sécurité – Web | Tutoriels | CV
  • Accueil
  • CV
  • Contactez-moi

[Tutoriels] Configuration d’un cluster Apache 2 avec HAProxy

Bastien Louche | 03/05/2010 | 14:41

J’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.

Sources et Informations supplémentaires : [1] [2]

Commentaires
31 Commentaires »
Catégories
Tutoriels
Tags
Apache, Debian, HAProxy, Linux, Serveur, Web
Flux rss des commentaires Flux rss des commentaires
Trackback Trackback

Recherche

Réseaux sociaux

CV Bastien Louche

Pages

  • CV
  • Contactez-moi

Catégories

  • Tutoriels (8)

Commentaires récents

  • cheikh dans [Tutoriels] Installation de Snort + Basic Analysis and Security Engine
  • Bastien Louche dans [Tutoriels] Installation de Snort + Basic Analysis and Security Engine
  • imen dans [Tutoriels] Installation de Snort + Basic Analysis and Security Engine
  • Simo, dans [Tutoriels] Installation de Snort + Basic Analysis and Security Engine
  • Pit dans [Tutoriels] Configuration d’un cluster Apache 2 avec HAProxy

Mots-clefs

Apache Apachebench Blog Cherokee Debian DNS DNSSEC HAProxy IDS IP Linux Logiciels Libres Nginx Réseaux Serveur Snort Systèmes Sécurité Web Windows YOURLS