Балансировка нагрузки - наиболее распространенная практика распределения входящего веб-трафика между несколькими внутренними серверами. Это делает приложение высокодоступным, даже если некоторые серверы по какой-то причине выходят из строя. Балансировка нагрузки повышает эффективность и надежность веб-приложения. Балансировщик нагрузки HAProxy используется с той же целью. Это наиболее широко используемый балансировщик нагрузки в промышленности. Согласно официальному сайту, HAProxy используется ведущими компаниями, такими как AWS, Fedora, Github и многими другими.
HAProxy или High Availability Proxy обеспечивает высокую доступность и решение для проксирования. Он написан на C и работает на сетевом и прикладном уровнях модели TCP / IP. Лучше всего то, что у него есть бесплатная версия сообщества, и это приложение с открытым исходным кодом. Работает в операционных системах Linux, FreeBSD и Solaris. Корпоративная версия тоже есть, но у нее есть ценник.
В этом руководстве мы увидим Как установить HAProxy и настроить сервер балансировки нагрузки в Debian 10.
Предпосылки:
- Доступ «sudo» ко всем машинам и базовые знания о запуске команд в терминале Linux.
- Частные IP-адреса добавлены к балансировщику нагрузки и внутренним серверам.
- Операционная система Debian 10 установлена на всех машинах.
Установка HAProxy на Debian 10
В нашем руководстве мы предположим следующую конфигурацию IP-адреса:
- Балансировщик нагрузки HAProxy 10.0.12.10
- Веб-сервер1: IP-адрес: 10.0.12.15
- Веб-сервер2: IP-адрес: 10.0.12.16
Шаг 1. Обновить системный репозиторий Debian и пакеты
Сначала запустите следующие команды во всех системах, чтобы обновить пакеты программного обеспечения до последней версии.
$ sudo подходящее обновление$ sudo подходящее обновление -y
Шаг: 2 Установите Nginx на внутренние серверы
Подготовьте свои внутренние серверы, установив веб-сервер Nginx на каждом. Вы также можете установить другие веб-серверы, такие как apache.
Чтобы установить Nginx, выполните следующие команды на каждом внутреннем сервере в вашей среде:
$ sudo apt установить nginxШаг: 3 После того, как Nginx будет установлен на ваших внутренних серверах, запустите службу, как показано ниже:
$ Sudo systemctl start nginxКОНЧИК: Мы также можем управлять веб-сервером nginx, используя следующую команду:
$ sudo / etc / init.d / nginx «опция»опция: начать перезагрузку перезапуск статус стоп
Шаг: 4 Создайте настраиваемые страницы индекса в веб-папке каждого веб-сервера Nginx. Это поможет нам определить, какой внутренний сервер обслуживает входящие запросы.
На каждом веб-сервере выполните следующие задачи:
Сделайте резервную копию исходного индексного файла с помощью следующей команды:
$ sudo cp / usr / share / nginx / html / индекс.HTML / USR / доля / Nginx / HTML / индекс.html.происхождениеДобавить произвольный текст в индекс.html файл. Мы добавляем IP-адрес каждого веб-сервера.
Для веб-сервера 1:
$ sudo echo "Веб-сервер 1:10.0.12.15 дюймов | sudo tee / usr / share / nginx / html / index.htmlДля веб-сервера 2:
$ sudo echo "Веб-сервер 2:10.0.12.16 дюймов | sudo tee / usr / share / nginx / html / index.htmlВы также можете использовать редактор vi, если вам это удобнее. Это показано ниже:
$ sudo vi / usr / share / nginx / html / индекс.htmlКогда файл откроется, введите текст и сохраните файл.
Откройте файл виртуального хоста по умолчанию в каталоге «/ etc / nginx / sites-available /».
$ sudo nano / etc / nginx / сайты-доступные / по умолчаниюТеперь внутри блока сервера измените корневую директиву с «/ var / www / html» на «/ usr / share / nginx / html».
Чтобы проверить конфигурацию Nginx, выполните следующую команду:
$ sudo nginx -tШаг 5: Теперь перезапустите службу с помощью команды:
$ sudo systemctl перезапустить nginxВы можете проверить статус nginx, используя следующую команду:
$ sudo systemctl статус nginxШаг: 6 Чтобы установить HAProxy в Debian 10 (Buster), выполните следующую команду на балансировщике нагрузки.
$ sudo apt install haproxy -yКончик: После установки HAProxy вы можете управлять HAProxy с помощью сценария инициализации. Для этого установите для параметра «enabled» значение 1 в «/ etc / default / haproxy», как показано ниже:
$ sudo vi / и т. д. / по умолчанию / haproxyВКЛЮЧЕНО = 1
Теперь со сценарием инициализации можно использовать следующую опцию:
Параметр $ sudo service haproxy ".”опция: начать перезагрузку перезапуск статус стоп
Шаг: 7 Теперь настройте балансировщик нагрузки HAProxy, отредактировав файл конфигурации по умолчанию haproxy, i.е. «/ Etc / haproxy / haproxy.cfg ». Чтобы отредактировать этот файл, выполните следующую команду
$ sudo vi / и т. д. / haproxy / haproxy.cfgКончик: Пожалуйста, сделайте резервную копию исходного файла, чтобы в случае, если что-то пойдет не так, мы все будем в безопасности. Чтобы выполнить резервное копирование, используйте следующую команду:
$ sudo cp / и т. д. / haproxy / haproxy.cfg / и т. д. / haproxy / haproxy.cfg.происхождениеТеперь перейдите в конец файла и отредактируйте следующую информацию:
внешний интерфейс Local_Serverпривязать 10.0.12.10:80
режим http
default_backend веб-сервер
внутренний веб-сервер
режим http
баланс раундробин
вариант вперед
http-request set-header X-Forwarded-Port% [dst_port]
http-request add-header X-Forwarded-Proto https, если ssl_fc
опция httpchk HEAD / HTTP / 1.1rnHost: localhost
сервер web1 10.0.12.15:80
сервер web2 10.0.12.16:80
Примечание: Не забудьте изменить IP-адреса в указанном выше файле на тот, который вы добавили на свои веб-серверы.
Шаг: 8 Проверьте синтаксис конфигурации указанного выше файла с помощью следующей команды:
$ sudo haproxy -c -f / и т.д. / haproxy / haproxy.cfgЕсли все пойдет правильно, появится такой вывод: «Файл конфигурации действителен.”Если вы получите какую-либо ошибку в выводе, перепроверьте свой файл конфигурации и проверьте его еще раз.
Шаг: 9 Теперь перезапустите службу HAProxy, чтобы применить изменения
$ sudo service haproxy перезапускТестирование конфигурации
Теперь пора проверить, правильно ли работает наша установка. Введите IP-адрес системы балансировки нагрузки в веб-браузере (в нашем случае это 10.0.12.10) и постоянно обновляйте страницу 2-4 раза, чтобы проверить, правильно ли работает балансировщик нагрузки HAProxy. Вы должны увидеть разные IP-адреса или любой текст, который вы ввели в индекс.html, когда вы продолжаете обновлять страницу несколько раз.
Другой способ проверить - отключить один веб-сервер и проверить, обслуживает ли другой веб-сервер запросы.
Это все пока! Попробуйте поэкспериментировать с HAProxy, чтобы узнать больше о том, как он работает. Для е.грамм., можешь попробовать:
- Интеграция другого веб-сервера рядом с nginx.
- Изменение алгоритма балансировки нагрузки на другой, кроме циклического перебора.
- Настройка проверки работоспособности HAProxy, чтобы определить, работает ли внутренний сервер.
- Применение липких сеансов для подключения пользователя к одному и тому же внутреннему серверу.
- Использование статистики HAProxy для получения информации о трафике на серверах.
HAProxy имеет обширную документацию, доступную как для версии сообщества HAProxy, так и для версии HAProxy для предприятий. Изучите эту документацию, чтобы получить больше информации о повышении производительности и надежности вашей серверной среды.
Это руководство было успешно выполнено на Debian 10 (Buster). Попробуйте установить HAProxy на другие дистрибутивы на основе Debian, такие как Ubuntu, Linux Mint и т. Д. Пожалуйста, не забудьте поделиться этим руководством с другими.