diff --git a/HowtoHaproxy.md b/HowtoHaproxy.md index 22e5e192..983d3074 100644 --- a/HowtoHaproxy.md +++ b/HowtoHaproxy.md @@ -457,9 +457,10 @@ frontend fe_www backend be_www balance roundrobin option httpchk OPTIONS * - server www01 192.0.2.1:80 check agent-check agent-inter 5s agent-addr 192.0.2.1 agent-port 9999 - server www02 192.0.2.2:80 check agent-check agent-inter 5s agent-addr 192.0.2.2 agent-port 9999 - server www03 192.0.2.3:80 check agent-check agent-inter 5s agent-addr 192.0.2.3 agent-port 9999 + default-server check agent-check agent-inter 5s + server www01 192.0.2.1:80 agent-port 9999 + server www02 192.0.2.2:80 agent-port 9999 + server www03 192.0.2.3:80 agent-port 9999 ~~~ Un moyen simple (inspiré de ce [blog post](https://icicimov.github.io/blog/server/HAProxy-dynamically-adjust-server-weight-using-external-agent/)) est de créer un script qui sera déclenché par **xinetd**. @@ -521,6 +522,12 @@ Les valeurs renvoyées peuvent être les suivantes : - La chaîne `maxconn:` suivie d'un entier pour spécifier le nombre max de connexions - Les mot `ready`, `drain`, `maint`, `down` et `up` pour modifier les états +Il faut bien avoir en tête qu'il y a 2 types d'états : +* "administrative" : ready (prêt), drain (ne plus envoyer de trafic, sans couper l'existant), maint (maintenance, plus de trafic du tout) +* "operative" : up (actif), down/failed/stopped (inactif) + +C'est pourquoi il peut être important de combiner plusieurs mots clés dans le résultat de l'agent, en particulier `up ready` pour assurer que les 2 états sont bien remis. + On notera que seuls les algorithmes d'équilibrage dynamiques (roundrobin et leastconn) permettront l'ajustement du poids via `agent-check`. Dans le cas de l'utilisation d'un algorithme statique comme `source` par exemple, seules des opérations telles que le passage en DRAIN, DOWN, MAINT et UP seront possibles.