Балансировка нагрузки веб серверов IIS с Windows аутентификацией через Haproxy

Дата: 04.07.2018 Автор Admin

На днях понадобилось настроить балансировку нагрузки между двумя серверами с Windows аутентификацией.
Думал использовать привычный nginx для этих целей, но оказалось из коробки этот функционал доступен только в редакции Nginx Plus.
Ну ничего страшного, тут нас выручит не менее крутой =)

Приступим к настройке, я буду разворачивать балансировщик Haproxy на Ubuntu Server 16.04 LTS.

Обновим все пакеты и установим Haproxy

Теперь перейдем к настройке, открываем файл /etc/haproxy/haproxy.cfg и приводим его к виду:

Пройдемся по конфигу

В нем указаны мои сервера IIS, нагрузку между которыми я балансирую
iis-01.mydomain.local
iis-02.mydomain.local

Сервер iis-03.mydomain.local указан как запасной, на случай недоступности первых двух серверов

Теперь секции, в секции backend, указаны сами сервера IIS и параметры балансировки и проверки
В данном случае строка server iissrv1 iis-01.mydomain.local:80 weight 1 check port 80 inter 5s rise 3 fall 2 означает:

1) мы используем сервер iis-01.mydomain.local на порту 80
2) вес сервера равен 1 (weight 1)
3) используется проверка доступности порта (check port 80)
4) интервал между проверками равен 5 секундам (inter 5s)
5) число успешных проверок прежде чем считать сервер UP (rise 3)
6) число не успешных проверок прежде чем считать сервер DOWN (fall 2)
7) режим работы haproxy — http
8) тип балансировки нагрузки roundrobin

Далее идет секция frontend , в ней мы указываем какие backend мы будем использовать
Параметры следующие:
1) балансировщик принимает запросы на порту 80, на всех сетевых интерфейсах (bind *:80 )
2) режим работы haproxy — http (mode http)
3) используемый backend backend_iis (default_backend backend_iis)

Сохраните конфиг и перезапустите сервис haproxy

Теперь настройте ваши DNS записи на балансировщик, а не напрямую на IIS как было раньше.

Теперь все запросы проходят равномерно через балансировщик и Windows аутентификация работает для клиентов корректно.

При недоступности одного из IIS серверов клиенты будут перенаправлены на другой доступный сервер автоматически.


Добавить комментарий

Ваш e-mail не будет опубликован.