Назад | Перейти на главную страницу

Создание ACL с помощью Regex в HAProxy

Я хочу условно добавить заголовок к запросам, которые соответствуют домену и его поддоменам. Итак, я хочу сопоставить запросы от:

http://example.com
https://example.com
http://foo.example.com
https://foo.example.com

Но нет:

http://example.com.otherdomain.com

У меня есть эти строки в моей конфигурации haproxy.

frontend http
  capture request header origin len 128
  acl is_my_domain capture.req.hdr(0) /https?:\/\/(.*\.)?example.com/
  http-response add-header X-Your-Domain-IS %[capture.req.hdr(0)] if is_my_domain

Я могу получить захваченные данные для вывода в заголовке, но условное выражение не работает. Как я могу так проверить исходный заголовок?

Похоже, вы бы предпочли использовать следующий acl, он выглядит более читаемым:

acl is_my_domain hdr_end(host) -i example.com
http-response add-header X-Your-Domain-IS %[host] if is_my_domain