ГАПрокси: декілька фронтенів, однакове зв’язування


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 працювати неправильно - іноді застосовується правильне правило, а іноді - ні.

Перш ніж приєднатись до цих фронтендів, як єдиний, чи можливо використовувати кілька фронтендів, які пов'язуються з тими ж портами?

EDIT: BTW, я використовую HAProxy 1.5

Відповіді:


11

Ні, ви не можете цього зробити і очікувати розумної поведінки.

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

Усі правила, що застосовуються до порту 80 (або будь-якого порту), повинні бути вказані на одному frontend(або одному listen), який прив'язаний до порту 80.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.