8 votes

HAProxy définir acl avec des hôtes à partir d'un fichier

Je voudrais migrer une centaine de sites d'un serveur à un autre. Le plan actuel est d'ajouter progressivement une acl pour chacun d'eux au fur et à mesure qu'ils sont 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 sont tous 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 ci-dessous, quelque chose de ce genre serait génial!

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

Ce n'est pas la fin du monde si ce n'est pas le cas, ce serait juste bien rangé :).

10voto

Kyle Brandt Points 81077

Les ACL dans HAProxy peuvent prendre l'argument -f pour charger des 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 en tant que valeurs individuelles. Il est même possible de passer plusieurs arguments "-f" si les motifs doivent être chargés à partir de plusieurs fichiers. 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 manqué cela. Je réalise maintenant 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