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