Question Comment puis-je faire des demandes de routage haproxy basées sur des sous-chaînes d'URL?


Un équilibreur de charge est configuré avec deux extrémités arrières.

L'URI de la requête se présentera comme suit:

http://example.com/answers/submit
http://example.com/tag-02/answers/submit

Comment puis-je configurer haproxy de telle sorte que la demande soit envoyée à l'un ou l'autre des deux back-end, en fonction du format de l'URI de la demande? La seule différence entre les demandes est /tag-02/ dans l'URI de la demande.

Un fichier de configuration haproxy avec quelques explications serait très apprécié, étant donné que je suis nouveau sur haproxy.


12
2017-08-31 19:30


origine




Réponses:


Vous voulez utiliser ACL:

backend be1 # this is your default backend
  ...
backend be2 # this is for /tag-02 requests
  ...

frontend fe
  ...
  default_backend be1
  acl url_tag02 path_beg /tag-02
  use_backend be2 if url_tag02

Section 7 de la Guide de configuration HAProxy a les détails sur les ACL, mais vous devez connaître la magie use_backend incantation cachée dans la section 4 du guide pour savoir quoi faire des ACL.


12
2017-08-31 19:56



Bien que le style ACL déclaré soit généralement plus lisible et réutilisable, vous pouvez, si vous préférez, inclure la déclaration ACL dans use_backend directive elle-même, avec use_backend be2 if { path_beg /tag-02 }. - womble♦