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

Как бы вы настроили несколько экземпляров Haproxy с завершением SSL, которые сами по себе имеют балансировку нагрузки?

Я провел много исследований и экспериментов по этому поводу, и я действительно наткнулся на стену:

Я пытаюсь настроить HAProxy в качестве обратного прокси для среды с высокой доступностью. Весь трафик, входящий в эту среду и исходящий из нее, зашифрован с помощью SSL, поэтому исходный дизайн заключался в том, чтобы HAProxy выполнял завершение SSL и передавал трафик в анклав в открытом виде, а затем транслировал обратно в другую сторону. Пока все хорошо, есть много отличной документации по этому поводу.

Проблема заключается в следующем: объем трафика слишком велик для того, чтобы один оконечный модуль HAProxy с завершением SSL мог обработать, что требует наличия более одного оконечного обратного прокси-сервера SSL.

Хорошо, я внимательно изучил этот вопрос и нашел много статей, которые, казалось, вели в правильном направлении, но всегда заканчивались 1 основным HAProxy и 1 резервной копией (например, все решения для проверки пульса и поддержки активности, такие как так как Вот и Вот) или вообще игнорировать завершение SSL и поговорить с вашими балансировщиками нагрузки о циклическом переходе DNS.

Итак, я думаю, что я действительно искал, так это возможность более чем одного оконечного устройства haproxy ssl для одновременного разделения нагрузки. Есть ли способ сделать это за пределами кругового перебора DNS?

Думаю, я думал, что есть способ, которым они могут использовать один и тот же виртуальный IP-адрес и разделять трафик между ними одновременно, все как в кластере. Если один из боксов выходит из строя, то аварийное переключение можно решить с помощью вышеупомянутого метода keepalived или чего-то еще. Кажется, это не обычный вариант использования ... возможно ли это вообще?

(Конечно, существует проблема, как совместно использовать SSL-сеансы между процессами HAProxy, но если это невозможно, повторное создание нового сеанса время от времени не является убийственным в этом случае.)

Заранее спасибо!

Два экземпляра haproxy могут разделять нагрузку, используя 2 виртуальных IP-адреса, каждый из которых является главным для одного из них. Циклический DNS примерно балансирует между двумя виртуальными IP-адресами (и, следовательно, между двумя экземплярами haproxy). Этот метод также работает с SSL. Одна из причин дважды подумать об этой настройке «активный-активный»: если один экземпляр не может справиться только с общим трафиком, он будет перегружен, если любой из экземпляров выйдет из строя. По сути, это может быть решено только за счет наличия резервной «потраченной впустую» емкости или временного снижения производительности.

В качестве альтернативы вы можете установить балансировку haproxy в режиме TCP перед вашими завершающими прокси SSL. Один сеанс TCP будет привязан к бэкэнду, поэтому вам не нужно слишком беспокоиться о повторном согласовании.