Eu não sei porque isso não funciona para você, mas a documentação do HAProxy diz:
There may be as many "use_backend" rules as desired. All of these rules are evaluated in their declaration order, and the first one which matches will assign the backend.
De: link
Olhando para o seu código:
acl url_a path_beg /a
acl dom_eye hdr_dom(host) -i www.mydomin.com
use_backend eye1 if dom_eye
use_backend eye2 if dom_eye url_a
Espero os seguintes resultados:
www.mydomin.com -> eye1
www.mydomin.com/a -> eye1
www.mydomin.com/a/b -> eye1
Porque todos eles correspondem ao primeiro use_backend
.
Se você alterar a configuração para:
acl url_a path_beg /a
acl dom_eye hdr_dom(host) -i www.mydomin.com
use_backend eye2 if dom_eye url_a
use_backend eye1 if dom_eye
Espero que esses resultados:
www.mydomin.com -> eye1
www.mydomin.com/a -> eye2
www.mydomin.com/a/b -> eye2
Porque somente os URLs 2 e 3 correspondem ao primeiro use_backend
.
Você poderia confirmar que isso não é o que acontece na sua configuração?