Nous avons vu jusqu'ici l'utilisation de la directive listen, elle est pratique, rapide mais pas assez modulaire et personnellement utilisant d'autre éditeur de load balancing je ne trouve pas cela très propre.
Pour faire quelque chose de plus modulaire, facile à travailler nous allons utiliser les directives frontend et backend.
Ces directives font respectivement, gestion de tout ce qui est côté client et gestion de tout ce qui est côté serveur.
En fin de compte, listen regroupe les directives frontend et backend en une seule.
La directive listen est plutôt à réserver à l'interface de statistiques.

Configuration :

Nous allons voir un fichier complet, la description des options fera l'objet d'un article dédié.
Ayant dédié une interface aux statistiques et une à la VIP du service web, je crée une interface secondaire (ici elle sera faite à la volée, mais pour une configuration pérenne il faut la créer dans le système).

ifconfig eth0:1 192.168.5.18

Edition du fichier /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
	stats socket /var/run/haproxy.stat level admin

defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        retries 3
        option redispatch
        maxconn 2000
        contimeout      5000
        clitimeout      50000
        srvtimeout      50000

listen IP_stats 192.168.5.17:80   //Declaration de l'interface pour les stats
       stats enable
	stats       uri /stats // Endroit où les stats seront consultables
	stats auth  pseudo:password // votre username : password

frontend ft_www    //Declaration de la VIP coté client
	bind  192.168.5.18:80
	mode http
	log global
	option httplog
	maxconn 4000
	default_backend bk_apache

backend bk_apache     //Declaration de la ferme de serveur backend
	balance static-rr
	mode http
	server apache1 10.0.0.1:80 check
        server apache2 10.0.0.2:80 check
        server apache3 10.0.0.3:80 check

Là on voit rapidement qu'il est simple de créer plusieurs backends et de rapidement les changer dans le frontend.
Nous verrons dans un autre articles les avantages de ces directives lors de configurations avancées.

Interface de statistiques :

Capture d’écran 2013-07-15 à 23.19.57