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