Description du fichier haproxy.conf

global
#option global a HAProxy
    log 127.0.0.1 local0
    #Definition des logs syslog

    maxconn 4096
    #Nombre de connexions Max que va accepté HAProxy
    #Les connexions sont comprises
    #au sens 'acceptation de connexion', donc il faut s'attendre en règle général à
    #avoir un peu plus du double de sessions TCP que le maximum de connexions fixé.
    #C'est important pour fixer le paramètre 'ulimit -n' avant de lancer le proxy.
    #Pour comptabiliser le nombre de sockets nécessaires, il faut prendre en compte
    #ces paramètres :

    # - 1 socket par connexion entrante
    # - 1 socket par connexion sortante
    # - 1 socket par couple adresse/port d'écoute par proxy
    # - 1 socket pour chaque serveur en cours de health-check
    # - 1 socket pour les logs (tous serveurs confondus)

    #Dans le cas où chaque proxy n'écoute que sur un couple adresse/port,
    #positionner la limite du nombre de descripteurs de fichiers (ulimit -n) à
    #(2 * maxconn + nbproxy + nbserveurs + 1). A partir des versions 1.1.32/1.2.6,
    #il est possible de spécifier cette limite dans la configuration à l'aide du
    #mot-clé global 'ulimit-n', à condition bien entendu que le proxy ait été
    #démarré sous le compte root (ou avec des droits suffisants pour élever le
    #nombre de descripteurs de fichiers). Cette solution met un terme au problème
    #récurrent d'incertitude de l'adéquation entre les limites systèmes lors de la
    #dernière relance du proxessus et les limites en nombre de connexions. Noter que
    #cette limite s'applique par processus.
    #Certaines doc donne 1Go de RAM pour 20k connexions

    user haproxy
    group haproxy
    # User et groupe avec lequel HAProxy est lancé

    stats socket /var/run/haproxy.stat level admin
    #Création d'un socket de stats avec les droits admin

defaults
#Paramètres par défaut s'ils ne sont pas définis dans une section
    log global
    #on utilise les paramètres de log déclarés dans la section global

    mode http
    #on traite des requêtes HTTP

    option httplog
    #on génère de logs un peu plus verbeux que par défaut

    option dontlognull
    #ne log pas les sessions n'ayant pas donné lieu à un échange de données (requête ou réponse).

    retries 3
    #Nombre de reconnexion par serveur backend avant abandon de la connexion

    option redispatch
    #Cette option est utilisée lorsqu'il y a de la persistance de sessions,
    #HAProxy renvoie vers un nouveau backend lorsque le serveur de backend initiale devient indisponible.

    maxconn 2000
    #Nombre de connexions max par defaut/frontend/backend/listen

    contimeout 5000
    #temps d'attente de l'établissement d'une connexion vers un serveur (en ms)

    clitimeout 50000
    #temps d'attente d'une donnée de la part du client, ou de la possibilité de lui envoyer des données (en ms)

    srvtimeout 50000
    #temps d'attente d'une donnée de la part du serveur, ou de la possibilité de lui envoyer des données (en ms)

listen IP_stats 192.168.5.17:80
#Déclaration d'un listen pour les statistiques
    stats enable
    stats uri /stats // Endroit où les stats seront consultables
    stats auth pseudo:password // votre username : password

frontend ft_www
#Déclaration d'un frontend

   bind 192.168.5.18:80
    #IP et port d'écoute du frontend

    mode http
    #c'est une VIP HTTP

    log global
    #On utilise la configuration de log du mode global

    option httplog
    #Log verbeux HTTP

    maxconn 4000
    #Nombre de connexion max sur le frontend

    default_backend bk_apache
    #backend utilisé

backend bk_apache
#Déclaration du backend

    balance roundrobin
    #Algorithme de load balancing

    mode http
    #backend de type HTTP

    server apache1 10.0.0.1:80 check cookie srv1
    server apache2 10.0.0.2:80 check cookie srv2
    server apache3 10.0.0.3:80 check cookie srv3
    #Déclaration des backends

C'est loin d'être complet mais c'est déjà une base !