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

Kak Nastroit Haproxy V Kacestve Balansirovsika Nagruzki Dla Nginx V Centos 8



High Availability Proxy, также сокращенно 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-адреса двух веб-серверов, как показано ниже.



$ так как / и т.д / хозяева
3.19.229.234   сервер_01
3.17.9.217     сервер-02



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





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

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

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



И так же с server_02

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

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

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

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

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

# ням обновление

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

# ням установить хапрокси

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

# CD / и т.д / хапрокси

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

# мв haproxy.cfg haproxy.cfg.bak

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

так как haproxy.cfg

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

#------------------------------------------------- --------------------
# Глобальные настройки
#------------------------------------------------- --------------------
Глобальный
журнал         127.0.0.1 локальный2 #Конфигурация журнала

chroot / был / библиотека / хапрокси
pid-файл / был / бег / haproxy.pid
максконн 4000
пользователь        haproxy #Haproxy работает под пользователем и группой 'haproxy'
группа       haproxy
демон

# включить статистику unix socket
сокет статистики / был / библиотека / хапрокси / статистика

#------------------------------------------------- --------------------
# общие значения по умолчанию для всех разделов «listen» и «backend»
# использовать, если не указано в их блоке
#------------------------------------------------- --------------------
значения по умолчанию
режим                    http
log                     глобальный
вариант                  httplog
option                  dontlognull
опция http-server-close
опция переадресации для       кроме 127.0.0.0 / 8
вариант                  повторная отправка
повторяет 3
тайм-аут http-запроса    10 с
очередь ожидания           1 мин.
время ожидания подключения         10 с
тайм-аут клиента          1 м
сервер тайм-аута          1 мин.
тайм-аут http-keep-alive 10s
проверка тайм-аута           10 с
максконн 3000

#------------------------------------------------- --------------------
#HAProxy Конфигурация мониторинга
#------------------------------------------------- --------------------
слушать haproxy3-мониторинг * : 8080 #Haproxy Monitoring работает на порту 8080
режим http
опцион вперед для
опция httpclose
статистика включить
статистика шоу-легенды
обновление статистики 5s
статистика ури / статистика #URL для мониторинга HAProxy
stats realm Haproxy\ Статистика
авторизация статистики Password123: Password123 #Пользователь и пароль для входа в панель мониторинга
администратор статистики если ПРАВДА
default_backend основное приложение # Это необязательно для мониторинга бэкэнда

#------------------------------------------------- --------------------
# Конфигурация внешнего интерфейса
#------------------------------------------------- --------------------
главный интерфейс
связывать * : 80
опция http-server-close
опцион вперед для
default_backend основное приложение

#------------------------------------------------- --------------------
# BackEnd round robin как алгоритм баланса
#------------------------------------------------- --------------------
бэкэнд-приложение-основное

круговой баланс #Алгоритм баланса

опция httpchk HEAD / HTTP / 1.1 \r\nХост:\ локальный
#Проверьте, что серверное приложение работает и работает - код состояния 200

сервер server_01 3.19.229.234: 80 проверять #Nginx1

сервер server_02 3.17.9.217: 80 проверять #Nginx2

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

Следующим шагом будет настройка Rsyslog для регистрации статистики HAProxy.

# так как / и т.д / rsyslog.conf

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

$ModLoad имудп
$UDPServerRun 514

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

# так как / и т.д / rsyslog.d / haproxy.conf

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

местный2.=информация / был / журнал / haproxy-access.log #Для журнала доступа
local2.notice / был / журнал / haproxy-info.log #Для служебной информации - серверная часть, балансировщик нагрузки

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

# systemctl перезапустить rsyslog

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

# systemctl запустить rsyslog
# systemctl включить rsyslog

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

# статус systemctl rsyslog

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

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

# ням обновление

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

# ням установить теплый выпуск

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

# ням установить нгинкс

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

# systemctl запускает nginx
# systemctl включить nginx

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

Для сервера_01

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

Для сервера_02

# эхо 'server_02. Эй! Добро пожаловать на второй веб-сервер' > index.html

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

# systemctl перезапустить nginx

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

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

# завиток 3.17.12.132

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

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

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

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


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

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