1 votes

HAProxy conditionnels ACL imbriqués

J'ai un ensemble de règles suivantes définies dans un frontend :

    acl abc_f path_beg /abc/
    use_backend abc if abc_f

Maintenant, je voudrais rediriger un domaine vers un backend, et il ne devrait pas avoir les conditions ACL ci-dessus appliquées. Je voulais ajouter :

acl host_xyz hdr(host) -i xyz.com

Y a-t-il un moyen de "nester" les conditions ACL pour qu'elles ne s'appliquent qu'à un domaine spécifique, et non au nouveau domaine ?

Ou dois-je modifier chaque règle ACL pour tenir compte du domaine ?

0voto

user98677 Points 151

Vous pouvez évaluer plusieurs ACL à la fois, mais gardez à l'esprit qu’HAProxy utilise l'évaluation en court-circuit des conditions (il arrête l'évaluation au moment où il rencontre une condition fausse).

Si j'ai bien compris votre question, vous souhaitez exclure le domaine xyz.com de use_backend abc if abc_f (c'est-à-dire que vous ne voulez pas rediriger les requêtes pour le domaine xyz.com vers le backend abc). Pour ce faire, vous pouvez simplement ajouter une condition supplémentaire à la directive use_backend abc:

acl abc_f path_beg /abc/
acl host_xyz hdr(host) -i xyz.com

# Utiliser le backend "abc" si l'ACL "abc_f" est vraie et si l'ACL "host_xyz" n'est pas vraie
use_backend abc if abc_f !host_xyz

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