Ich denke , dass hdr_sub besser für Ihre Bedürfnisse ist. Ich habe hdr_end für eine Weile verwendet, aber es tritt das folgende Problem auf:
Bei Anforderungen mit Port 80 wird der Port normalerweise entfernt, sodass der Host-Header wie "example.com" aussieht. Wenn Sie jedoch explizit an einem Port wie example.com:8080 anfordern, hat der Header den Port und hdr_end schlägt fehl Suchen Sie nach "example.com".
hdr_sub führt ein Teilstring-Match durch, das für Sie (und mich) besser zu passen scheint.
Jede Lösung hat immer noch eine böse Sache, die ich nicht mag. Auftragsabhängige Auswertung der Ergebnisse.
zB (meine Bedingungen sehen im Frontend so aus)
acl is_dbadmin hdr_sub(host) -i dbadmin.example.com
Das Anfordern an Port 8080 würde folgendermaßen aussehen:
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"
wo als Port 80 wahrscheinlich so sein könnte
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"