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

Игнорировать номера портов в совпадениях заголовков хостов haproxy

Используя haproxy-1.5, у меня есть следующая частичная конфигурация:

    acl is_api hdr(host) -i api.example.com
    acl is_app hdr(host) -i app.example.com

К сожалению, это не соответствует запросу, который выглядит так:

GET / HTTP/1.1
Host: api.example.com:80

Насколько я могу судить, мне нужно сделать:

    acl is_api hdr(host) -i api.example.com
    acl is_api hdr(host) -i api.example.com:80
    acl is_app hdr(host) -i app.example.com
    acl is_app hdr(host) -i app.example.com:80

УГХ. НЕТ! НЕНАВИДЕТЬ!

Есть ли способ сделать это лучше? Могу я просто сказать haproxy игнорировать порт в заголовке хоста?

Вы можете заставить это работать, проверив hdr_dom (https://code.google.com/p/haproxy-docs/wiki/MatchingLayer7) вместо hdr:

acl is_api hdr_dom(host) -i api.example.com
acl is_app hdr_dom(host) -i app.example.com

Просто будьте осторожны, потому что я считаю, что это также будет соответствовать таким вещам, как «otherstuff.api.example.com».