HAProxy: несколько интерфейсов, одна и та же привязка

10

Возможно ли / правильно ли настроить несколько внешних интерфейсов, привязанных к одному и тому же порту на HAProxy?

frontend A
    bind :80
    bind :2000-5000
    acl rule_about_A
    use_backend server_A if rule_about_A

frontend B
    bind :80
    acl rule_about_B
    use_backend server_B if rule_about_B

В этом случае пользовательский интерфейс A должен быть привязан к 80 и диапазону 2000-5000. Для внешнего интерфейса B я не хочу связывать его со всеми этими портами, только с 80.

Я думал, что это будет выглядеть чисто, если я настрою его таким образом, вместо этого использую один интерфейс и играю с ACL, но кажется, что конфигурация заставляет HAProxy работать неправильно - иногда применяет правильное правило, а иногда нет.

Прежде чем объединить эти интерфейсы как один, можно ли использовать несколько интерфейсов, которые привязаны к одним и тем же портам?

РЕДАКТИРОВАТЬ: Кстати, я использую HAProxy 1,5

JonDoe297
источник

Ответы:

11

Нет, вы не можете этого делать и ожидать разумного поведения.

Запросы на порт 80 будут поступать, по-видимому, случайным образом на одном или другом интерфейсе. Результат такой конфигурации не определен, и хотя технически он недопустим, он для всех практических целей является бессмысленной конфигурацией.

Все правила, применяемые к порту 80 (или любому порту), должны быть указаны для одного frontend(или одного listen), который привязан к порту 80.

Майкл - sqlbot
источник