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. Мы будем очень признательны за ваши отзывы.