blob: d350e229e9a21980b38d8fb83a52c5825270cb64 [file] [log] [blame]
Willy Tarreaud1142aa2007-01-07 13:03:59 +010011 type générique "entité", avec les attributs suivants :
2
3 - frontend *f
4 - l7switch *s
5 - backend *b
6
7des types spécifiques sont simplement des entités avec certains
8de ces champs remplis et pas forcément tous :
9
10 listen = f [s] b
11 frontend = f [s]
12 l7switch = s
13 backend = [s] b
14
15Ensuite, les traitements sont évalués dans l'ordre :
16 - listen -> s'il a des règles de l7, on les évalue, et potentiellement on branche vers d'autres listen, l7 ou back, ou on travaille avec le back local.
17 - frontend -> s'il a des règles de l7, on les évalue, et potentiellement on branche vers d'autres listen, l7 ou back
18 - l7switch -> on évalue ses règles, potentiellement on branche vers d'autres listen, l7 ou backends
19 - backend -> s'il a des règles l7, on les évalue (quitte à changer encore de backend) puis on traite.
20
21Les requêtes sont traitées dans l'ordre des chaînages f->s*->b, et les réponses doivent être
22traitées dans l'ordre inverse b->s*->f. Penser aux réécritures de champs Host à l'aller et
23Location en retour.
24
25D'autre part, prévoir des "profils" plutôt que des blocs de nouveaux paramètres par défaut.
26Ca permettra d'avoir plein de jeux de paramètres par défaut à utiliser dans chacun de ces
27types.