HAProxy

Как настроить HAProxy в качестве балансировщика нагрузки для Nginx в CentOS 8

Как настроить HAProxy в качестве балансировщика нагрузки для Nginx в CentOS 8
Прокси-сервер высокой доступности, также сокращенно HAProxy, представляет собой легкий и быстрый балансировщик нагрузки, который также выполняет функции прокси-сервера. Как балансировщик нагрузки, он играет решающую роль в распределении входящего веб-трафика между несколькими веб-серверами с использованием определенных критериев. При этом он обеспечивает высокую доступность и отказоустойчивость в случае слишком большого количества одновременных запросов, которые могут перегрузить один веб-сервер.

HaProxy используется популярными сайтами, такими как Tumblr, GitHub и StackOverflow. В этом руководстве мы проведем вас через установку HAProxy в настройке веб-серверов, работающих с использованием Nginx.

Лабораторная установка

3 экземпляра серверов CentOS 7, как показано

IP-адреса имени хоста
load_balancer 3.17.12.132
server_01 3.19.229.234
server_02 3.17.9.217

Шаг 1. Отредактируйте файл / etc / hosts для балансировщика нагрузки

Для начала войдите в систему балансировки нагрузки и измените файл / etc / hosts, включив в него имена хостов и IP-адреса двух веб-серверов, как показано

$ vim / etc / hosts
3.19.229.234 server_01
3.17.9.217 сервер-02

После этого сохраните изменения и выйдите из файла конфигурации.

Теперь перейдите на каждый из веб-серверов и обновите / etc / hosts файл с IP-адресом и именем хоста балансировщика нагрузки

3.17.12.132 балансировщик нагрузки

После этого подтвердите, что вы можете проверить связь с балансировщиком нагрузки с server_01

И так же с server_02

Также убедитесь, что вы можете пинговать серверы из балансировщика нагрузки.

Идеально ! все серверы могут связываться с балансировщиком нагрузки!

Шаг 2. Установите и настройте прокси-сервер высокой доступности на балансировщике нагрузки

Поскольку прокси-сервер HA легко доступен из официального репозитория CentOS, мы собираемся установить его с помощью диспетчера пакетов yum или dnf.

Но, как всегда, сначала обновите систему

# yum update

Затем установите HA Proxy, как показано

# yum install haproxy

После успешной установки перейдите в каталог haproxy.

# cd / etc / haproxy

Лучшая практика требует, чтобы мы создавали резервную копию любого файла конфигурации перед внесением каких-либо изменений.  Так что сделайте резервную копию haproxy.cfg файл, переименовав его.

# mv haproxy.cfg haproxy.cfg.бак

Далее продолжаем и открываем файл конфигурации

vim haproxy.cfg

Убедитесь, что вы внесли изменения, как показано

#---------------------------------------------------------------------
# Глобальные настройки
#---------------------------------------------------------------------
Глобальный
журнал 127.0.0.1 local2 # Конфигурация журнала
 
chroot / var / lib / haproxy
файл pidfile / var / run / haproxy.пид
maxconn 4000
пользователь haproxy #Haproxy работает под пользователем и группой "haproxy"
группа haproxy
демон
 
# включить статистику unix socket
stats socket / var / lib / haproxy / stats
 
#---------------------------------------------------------------------
# общие значения по умолчанию, что все разделы "прослушивание" и "бэкэнд" будут
# использовать, если не указано в их блоке
#---------------------------------------------------------------------
значения по умолчанию
режим http
журнал глобальный
опция httplog
вариант не игнорировать
вариант http-server-close
вариант вперед за исключением 127.0.0.0/8
вариант повторной отправки
повторных попыток 3
время ожидания http-запроса 10 с
время ожидания очереди 1 мин
таймаут подключения 10 с
время ожидания клиента 1 мин
тайм-аут сервера 1 мин
тайм-аут http-keep-alive 10 с
проверка тайм-аута 10 с
maxconn 3000
 
#---------------------------------------------------------------------
#HAProxy Monitoring Config
#---------------------------------------------------------------------
listen haproxy3-monitoring *: 8080 # Haproxy Monitoring запускается на порту 8080
режим http
вариант вперед
опция httpclose
статистика включить
статистика шоу-легенд
статистика обновляется 5 сек
stats uri / stats #URL для мониторинга HAProxy
stats realm Haproxy \ Статистика
stats auth Password123: Password123 # Пользователь и пароль для входа в панель мониторинга
администратор статистики, если ИСТИНА
default_backend app-main # Это необязательно для мониторинга серверной части
 
#---------------------------------------------------------------------
# Конфигурация FrontEnd
#---------------------------------------------------------------------
главный интерфейс
привязка *: 80
вариант http-server-close
вариант вперед
default_backend приложение-главное
 
#---------------------------------------------------------------------
# BackEnd round robin как алгоритм баланса
#---------------------------------------------------------------------
бэкэнд-приложение-главное
баланс roundrobin # алгоритм баланса
опция httpchk HEAD / HTTP / 1.1 \ r \ nХост: \ localhost
# Проверить, что серверное приложение запущено и работоспособно - код состояния 200
сервер server_01 3.19.229.234: 80 проверка # Nginx1
сервер server_02 3.17.9.217: 80 проверка # Nginx2

Обязательно измените имя хоста и IP-адреса веб-серверов, как указано в последних двух строках. Сохраните изменения и выйдите.

Следующим шагом будет настройка Rsyslog, чтобы он мог регистрировать статистику HAProxy.

# vim / etc / rsyslog.conf

Не забудьте раскомментировать строки ниже, чтобы разрешить UDP-соединения

$ ModLoad imudp
$ UDPServerRun 514

Затем продолжите и создайте новый файл конфигурации  haproxy.conf

# vim / etc / rsyslog.d / haproxy.conf

Вставьте следующие строки, сохраните и выйдите

local2.= информация / var / log / haproxy-доступ.log # Журнал доступа
local2.уведомление / var / log / haproxy-info.log # Для служебной информации - Backend, loadbalancer

Чтобы изменения вступили в силу, перезапустите демон rsyslog, как показано:

# systemctl перезапуск rsyslog

Затем запустите и включите HAProxy

# systemctl start rsyslog
# systemctl включить rsyslog

Убедитесь, что HAProxy запущен

# systemctl status rsyslog

Шаг 3. Установите и настройте Nginx

Теперь осталось только установить Nginx. Войдите на каждый из серверов и сначала обновите системные пакеты:

# yum update

Затем установите EPEL (дополнительные пакеты для Enterprise Linux)

# yum install epel-release

Чтобы установить Nginx, выполните команду:

# yum install nginx

Далее запускаем и включаем Nginx

# systemctl start nginx
# systemctl включить nginx

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

Для server_01

# echo "server_01. Привет ! Добро пожаловать на первый веб-сервер "> index.html

Для server_02

# echo "server_02. Привет ! Добро пожаловать на второй веб-сервер "> index.html

Чтобы изменения вступили в силу, перезапустите Nginx

# systemctl перезапуск nginx

Шаг 4. Проверка работоспособности балансировщика нагрузки

Наконец-то мы подошли к тому моменту, когда хотим увидеть, работает ли конфигурация. Итак, войдите в балансировщик нагрузки и несколько раз выполните команду curl

# изгиб 3.17.12.132

Вы должны получить попеременный вывод на терминале, показывающий значение индекса.html с server_01 и server_02

Теперь давайте протестируем с помощью веб-браузера. Просмотрите IP-адрес вашего балансировщика нагрузки

http: // IP-адрес балансировщика нагрузки

На первой странице будет отображаться контент с любого из веб-серверов


Теперь обновите веб-страницу и проверьте, отображает ли она контент с другого веб-сервера

Идеально ! Балансировка нагрузки равномерно распределяет IP-трафик между двумя веб-серверами !
На этом заканчивается руководство о том, как установить и настроить HAProxy на CentOS 8. Ваш отзыв будет очень признателен.

WinMouse позволяет настраивать и улучшать движение указателя мыши на ПК с Windows
Если вы хотите улучшить функции указателя мыши по умолчанию, используйте бесплатное ПО WinMouse. Он добавляет дополнительные функции, которые помогут ...
Левая кнопка мыши не работает в Windows 10
Если вы используете выделенную мышь со своим ноутбуком или настольным компьютером, но левая кнопка мыши не работает в Windows 10/8/7 по какой-то причи...
Курсор прыгает или перемещается случайным образом при наборе текста в Windows 10
Если вы обнаружите, что ваш курсор мыши прыгает или перемещается сам по себе, автоматически, случайным образом при вводе текста на ноутбуке или компью...