Вам нужно проверить значение заголовка (hdr в haproxy) через ACL. Попробуйте:
frontend header_front
bind *:80
mode http
option forwardfor if-none
acl demo_host_version hdr(X-DEMO-HOST-VERSION) -i test
use_backend test_backend if demo_host_version
default_backend prod_backend
backend test_backend
...
backend prod_backend
...
Тест для вас заголовок:
acl demo_host_version hdr(X-DEMO-HOST-VERSION) -i test
use_backend test_backend if demo_host_version
Логика: IF
X-DEMO-HOST-VERSION=test
использование test_backend ELSE
использование prod_backend
UPD: если вам нужен acl для пути в URL (example.com/test/
):
acl demo_host_path path_beg /test/
use_backend test_backend if demo_host_path
Если вам нужно использовать два ACL в операторе if, используйте его:
acl demo_host_version hdr(X-DEMO-HOST-VERSION) -i test
acl demo_host_path path_beg /test/
use_backend test_backend if demo_host_path demo_host_version
UPD для проверки URL:
Проверка субдомена. Если у вас домен test.example.com
или test.abc.com
, попробуйте:
acl host_sub_domain hdr_beg(host) -i test
Для полной проверки домена, например, test.example.com
, попробуйте:
acl host_full_domain hdr(host) -i test.example.com