Configuration d'un cluster web (Haproxy)

1) Activer 2 cartes réseaux sur la machine

2) Installer haproxy depuis les dépôts de Debian puis faire ces commandes pour modifier la configuration du programme :

sed -i "s/ENABLED=0/ENABLED=1/g" /etc/default/haproxy
sed -i "s/ENABLED=0/ENABLED=1/g" /etc/init.d/haproxy

3) Modifier le fichier /etc/haproxy/haproxy.cfg

global
	log /dev/log	local0
	log /dev/log	local1 notice
	chroot /var/lib/haproxy
	stats socket /run/haproxy/admin.sock mode 660 level admin
	stats timeout 30s
	user haproxy
	group haproxy
	daemon 

	# Default SSL material locations
	#ca-base /etc/ssl/certs
	#crt-base /etc/ssl/private

	# Default ciphers to use on SSL-enabled listening sockets.
	# For more information, see ciphers(1SSL). This list is from:
	#  https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
	# An alternative list with additional directives can be obtained from
	#  https://mozilla.github.io/server-side-tls/ssl-config-generator/?server=haproxy
	#ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
	#ssl-default-bind-options no-sslv3

defaults
	log	global
	mode	http
	option	httplog
	option	dontlognull
        timeout connect 5000
        timeout client  50000
        timeout server  50000
	errorfile 400 /etc/haproxy/errors/400.http # V Pages d'erreurs HTTP V
	errorfile 403 /etc/haproxy/errors/403.http
	errorfile 408 /etc/haproxy/errors/408.http
	errorfile 500 /etc/haproxy/errors/500.http
	errorfile 502 /etc/haproxy/errors/502.http
	errorfile 503 /etc/haproxy/errors/503.http
	errorfile 504 /etc/haproxy/errors/504.http

listen cluster_web #nouveau cluster
	bind 192.168.152.2:80 #interface du répartiteur de charge en écoute
	mode http #protocole
	balance roundrobin #méthode de répartition de charge
	option httpclose 
	option forwardfor 
	server web1 192.168.1.101:80 check #Serveur web 1 du cluster
	server web2 192.168.1.102:80 check #Serveur web 2 du cluster
	stats enable # V configuration de la page des statistiques V
	stats hide-version
	stats refresh 30s
	stats auth admin:admin
	stats uri /stats
	stats realm Haproxy\ Statistics
	stats scope webfarm
	stats scope webservers

balance = Mode de répartition de charge (source, roundrobin, etc…)

4) Relancer le service :

 service haproxy restart 

Sources