Je pense que hdr_sub est mieux adapté à vos besoins. J'utilisais hdr_end depuis un certain temps, mais cela se heurte au problème suivant:
les demandes avec le port 80 obtiennent généralement le port supprimé afin que l'en-tête de l'hôte ressemble à "example.com", mais si vous demandiez explicitement sur un port, comme example.com:8080, l'en-tête aura le port, et hdr_end échouera le vérifiez "example.com".
hdr_sub fera une correspondance de sous-chaîne, ce qui semble être un meilleur choix pour vous (et moi).
L'une ou l'autre solution a toujours une mauvaise chose que je n'aime pas. Évaluation des résultats en fonction de l'ordre.
par exemple (mes conditions ressemblent à ceci sur le frontend)
acl is_dbadmin hdr_sub(host) -i dbadmin.example.com
Demander sur le port 8080 serait comme ceci:
Jul 9 02:48:40 localhost haproxy[8]: 192.168.1.1:55870 [09/Jul/2015:02:48:40.865] http-in example/s1 1/0/0/20/110 200 330722 - - ---- 0/0/0/0/0 0/0 {**example.com:8080**||http://example.com:} {Apache/2.4.10 (Debia||||} "GET /wp-includes/js/zxcvbn.min.js HTTP/1.1"
où le port 80 pourrait probablement être comme ça
Jul 9 02:48:40 localhost haproxy[8]: 192.168.1.1:55870 [09/Jul/2015:02:48:40.865] http-in example/s1 1/0/0/20/110 200 330722 - - ---- 0/0/0/0/0 0/0 {example.com||***http://example.com***:} {Apache/2.4.10 (Debia||||} "GET /wp-includes/js/zxcvbn.min.js HTTP/1.1"