HA Proxy : Infos utiles
Ha proxy est un load balanceur permettant de répartir la charge sur plusieurs serveurs.
Il y a quelques informations intéressante ici pour l’install : https://notamax.be/debian-10-creer-un-proxy-load-balancer-haproxy-http/
Certificats
Répertoire des certificats :
Afin que les certificats soit reconnu il faut renommer le .crt en .pem
le copier dans le répertoire : /etc/haproxy/certs/
Copier également le fichier .key et renommer en .pem.key
[certificat.com.pem]
[certificat.com.pem.key]
On peut garder ces mêmes nom, remplacer ceux dans le répertoire après les avoir mis en .oldxxxx (xxxx pour l’année).
Commandes utiles
Relancer le service avec la commande :
Service haproxy restart
Si il y a une erreur la commande pour débuguer :
haproxy -c -f /etc/haproxy/haproxy.cfg
Fichier de conf
/etc/haproxy/haproxy.cfg
C’est dans le fichier de conf qu’on règle la redirection vers les ip des serveurs en load balancing.
Exemple d’un fichier de conf qui fonctionne :
# On défini la partie frontend
frontend frontend-base
# On défini l'IP et le port sur lequel va écouter le proxy
bind 192.168.1.2:80 bind *:443 ssl crt /etc/haproxy/certs/certificat.com.pem
http-request redirect scheme https unless { ssl_fc }
# On indique le nom de la partie backend dispo plus bas
default_backend backend-base
# On défini la partie backend
backend backend-base
# On utilise la méthode roundrobin pour le loadbalancing
balance roundrobin
cookie AMSERVERID insert indirect nocache maxlife 48h
option forwardfor
http-request set-header X-Client-IP %[src]
http-request set-header X-Forwarded-For %[src]
http-request set-header X-Forwarded-Server %[req.hdr(Host)]
http-request set-header X-Forwarded-Host %[req.hdr(Host)]
http-request set-header X-Forwarded-Port %[dst_port]
http-request add-header X-Forwarded-Proto https if { ssl_fc }
# On défini les serveurs qui sont en backend par leur IP
server AM1 192.168.1.3:443 ssl verify none check inter 30s cookie AM1
server AM2 192.168.1.6:443 ssl verify none check inter 30s cookie AM2
On adaptera la configuration IP à notre environnement… évidement !