8 votes

HAProxy définit acl avec les hôtes du fichier

Je voudrais migrer une centaine de sites d'un serveur à un autre. Le plan actuel est d'ajouter progressivement un acl pour chacun d'eux lorsqu'ils seront déplacés pour rediriger le trafic vers un nouveau serveur.

Voici un exemple simplifié

front http_frontend
  bind *:80
  acl is_new hdr_end(host) -i sub1.domain.com
  acl is_new hdr_end(host) -i sub2.domain.com
  acl is_new hdr_end(host) -i www.domain2.com
  mode http
  # etc
  use_backend web1 if is_new
  default_backend legacy1

Une fois qu'ils auront tous été déplacés, nous changerions le default_backend

Y a-t-il un moyen de lire ces acls à partir d'un autre fichier? Ou de lire les domaines à partir d'un fichier - peut-être quelque chose comme ceci?

acl is_new hdr_end(host) -i /chemin/vers/fichier

Par exemple, j'inclus tous les certificats sécurisés comme indiqué ci-dessous, quelque chose comme ça serait génial!

bind *:443 ssl crt /etc/haproxy/certs.d

Ce n'est pas la fin du monde si ce n'est pas possible, ce serait juste plus propre :).

10voto

Kyle Brandt Points 81077

Les ACL dans haproxy peuvent prendre l'argument -f pour charger les valeurs à partir d'un fichier. Vous pouvez lire la documentation ici.

Par exemple:

acl valid-ua hdr(user-agent) -f exact-ua.lst -i -f generic-ua.lst test

Le drapeau "-f" est suivi du nom d'un fichier à partir duquel toutes les lignes seront lues comme des valeurs individuelles. Il est même possible de passer plusieurs arguments "-f" si les motifs doivent être chargés à partir de fichiers différents. Les lignes vides ainsi que les lignes commençant par un dièse ('#') seront ignorées.

0 votes

D'accord, je me sens un peu bête d'avoir raté ça. Je me rends maintenant compte que je l'avais vu dans un exemple sur le blocage des adresses IP mais j'ai fini par penser que c'était spécifique à ce scénario. Quel idiot! Merci!

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X