Tôi cảm thấy rằng hdr_sub tốt hơn cho nhu cầu của bạn. Tôi đã sử dụng hdr_end được một lúc nhưng nó gặp phải vấn đề sau:
các yêu cầu với cổng 80 thường bị tước cổng để tiêu đề máy chủ trông giống như "example.com", nhưng nếu bạn yêu cầu trên một cổng rõ ràng, như example.com:8080, tiêu đề sẽ có cổng và hdr_end sẽ thất bại kiểm tra "example.com".
hdr_sub sẽ thực hiện một kết hợp chuỗi con, có vẻ như phù hợp hơn với bạn (và tôi).
Hoặc là giải pháp vẫn có một điều khó chịu tôi không thích. Thứ tự đánh giá phụ thuộc của kết quả.
ví dụ (điều kiện của tôi trông như thế này trên frontend)
acl is_dbadmin hdr_sub(host) -i dbadmin.example.com
Yêu cầu trên cổng 8080 sẽ như thế này:
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"
nơi mà cổng 80 có thể giống như thế này
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"