From 50232bada67779ec3ab509c2eb969896c7a453c2 Mon Sep 17 00:00:00 2001 From: jlecour Date: Tue, 17 Nov 2020 21:54:20 +0100 Subject: [PATCH] Ajout de la partie DNS dynamique --- HowtoHaproxy.md | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/HowtoHaproxy.md b/HowtoHaproxy.md index 77a61e77..5418e9d8 100644 --- a/HowtoHaproxy.md +++ b/HowtoHaproxy.md @@ -501,6 +501,44 @@ redirect prefix http://www.domaine2.com code 301 if domaine Ainsi, il fait la redirection si l'acl domaine correspond au domaine spécifié. +### Résolution DNS et nombre dynamique de serveurs + +_À partir de HAProxy 1.8_ + +Lorsqu'on ne connait pas l'adresse IP d'un serveur on peut donner à HAProxy un nom de domaine. + +Il faut alors ajouter une section `resolvers` pour indiquer à HAProxy comment faire la résolution. Par défaut nous conseillons de reprendre la même configuration que dans /etc/resolv.conf (par exemple `192.168.10.1` sur le port `53`), mais il est possible d'indiquer d'autres resolveurs. + +~~~ +resolvers mydns + nameserver self 192.168.10.1:53 + nameserver google 8.8.8.8:53 + nameserver quad9 9.9.9.9:53 + nameserver cloudflare 1.1.1.1:53 + +backend web + balance roundrobin + server www01 www01.example.com:80 check resolvers mydns + server www02 www02.example.com:80 check resolvers mydns +~~~ + +À partir de la verison 2.0 il est possible d'iniquer l'utilisation automatique du resolveur configuré dans `/etc/resolv.conf` : + +~~~ +resolvers mydns + parse-resolv-conf +~~~ + +Lorsque le nom de domaine indiqué comporte plusieurs adresse IP et qu'on veut avoir autant de serveurs disponibles que d'IP disponibles, on peut utiliser `server-template`. Exemple avec un domaine qui aurait 4 IP résolues : + +~~~ +backend web + balance roundrobin + server-template example 4 example.com:80 check init-addr none resolvers mydns +~~~ + +La section `resolvers` peut être configurée avec plusieurs paramètres pour indiquer les timeout, nombres de tentatives, comportement en cas d'erreur… + ## Optimisations TCP/kernel Sur un serveur servant principalement de proxy/load-balancer, nous conseillons plusieurs optimisations TCP/kernel, à appliquer au niveau "sysctl" :