私はそれを感じるhdr_subは、ニーズのためのより良いです。しばらくhdr_endを使用していましたが、次の問題が発生しました:
通常、ポート80のリクエストではポートが取り除かれるので、ホストヘッダーは「example.com」のようになりますが、example.com:8080のようにポートで明示的にリクエストした場合、ヘッダーにはポートがあり、hdr_endは失敗します「example.com」を確認してください。
hdr_subは、部分文字列の一致を行います。これは、あなた(そして私)に適しているようです。
どちらの解決策にも、私が気に入らない厄介なことがまだあります。結果の順序依存評価。
例(私のフロントエンドでの条件は次のようになります)
acl is_dbadmin hdr_sub(host) -i dbadmin.example.com
ポート8080でのリクエストは次のようになります。
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"
ポート80はおそらくこのようになる可能性があるため
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"