Умный человек не тот, кто много знает, а тот, кто знает самого себя (И. Гёте).

Балансировка нагрузки с HAProxy, Nginx и Keepalived в Linux (CentOS)

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 оценок, среднее: 3,00 из 5)
Загрузка...
22 августа 2018
Настройка балансировщика нагрузки в Linux с помощью Nginx, HAProxy и Keepalived

Просмотров: 193

Наличие правильной настройки балансировщика нагрузки позволяет вашему веб-серверу надежно обрабатывать высокий трафик, а не обрушится. В этом руководстве мы рассмотрим, как настроить балансировщик нагрузки с высокой доступностью.

Что такое балансировка нагрузки?

Балансировка нагрузки – это процесс распределения рабочих нагрузок на несколько серверов. Это похоже на распределение рабочих нагрузок между дневной сменой и ночной сменой работников в компании. Балансировка нагрузки повышает надежность сервера, поскольку она преодолевает одноточечный сбой.

Обработка трафика на одном сервере

В этом примере, если веб-сервер не работает, веб-запрос пользователя не может быть доступен в режиме реального времени. Кроме того, если число пользователей запрашивает одну и ту же веб-страницу одновременно, то обслуживание веб-запроса пользователя одним веб-сервером может быть медленным процессом. Следовательно, балансировщики нагрузки используются для повышения производительности сервера, обеспечения резервного копирования и предотвращения сбоев.

В этой статье мы собираемся настроить балансировщик нагрузки для веб-сервера с помощью Nginx, HAProxy и Keepalived. Ниже показан пример того, как выглядят серверы с балансировщиками нагрузки.

Балансировка нагрузки с HAProxy, Nginx и Keepalived в Linux
Использование балансировки нагрузки для эффективной обработки высокого трафика

Итак, что такое Nginx, Haproxy и Keepalived?

nginx

Nginx, произносится как Engine-x является веб-сервером с открытым исходным кодом. Он больше, чем просто Веб-сервер, он может работать как обратный прокси-сервер, почтовый прокси-сервер, балансировщик нагрузки, легкий файловый сервер и кэш HTTP. Nginx был использован во многих популярных сайтах, таких как BitBucket, WordPress, Pinterest, Quora и GoDaddy.

HAProxy

HAProxy означает прокси высокой доступности. Это балансировщик нагрузки с открытым исходным кодом, который обеспечивает балансировку нагрузки, высокую доступность и прокси-решения для приложений на основе TCP и HTTP. Он лучше всего подходит для распределения рабочей нагрузки между несколькими серверами для повышения производительности и надежности серверов.

Функция Haproxy заключается в пересылке веб-запроса от конечного пользователя к одному из доступных веб-серверов. Он может использовать различные алгоритмы балансировки нагрузки как Round Robin, Least Connections  и т. д.

Keepalived

Что делать, если haproxy балансировки нагрузки упадет?

Keepalived является программой с открытым исходным кодом, которая поддерживает балансировку нагрузки и высокую доступность. Это в основном программное обеспечение маршрутизации и обеспечивает два типа балансировки нагрузки:

  • Уровень 4 (транспортный уровень)
  • Уровень 7 (прикладной уровень)

Keepalived может выполнять следующие функции:

  • Проверка работоспособности (работают ли серверы или нет)
  • Реализует третий уровень (виртуальных избыточность протокола маршрутизации) для балансировки нагрузки, отказоустойчивости

Keepalived использования для VIP (виртуальный IP-адрес) как плавающий IP, который плавает между мастером балансировки нагрузки и резервного копирования балансировки нагрузки и используется для переключения между ними. Если главный балансировщик нагрузки отключается, то резервный балансировщик нагрузки используется для пересылки веб-запроса.

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

Настройка балансировщика нагрузки в Linux с помощью Nginx, HAProxy и Keepalived

Настройка балансировщика нагрузки в Linux с помощью Nginx, HAProxy и Keepalived

Это тестовый лабораторный эксперимент, означающий, что это просто тестовая установка, чтобы вы начали. Возможно, вам придется сделать некоторые настройки, если вы реализуете его на реальных серверах. Используйте этот учебник в качестве учебного материала, а не слепо следовать ему для вашей собственной установки.

Мы использовали CentOS в качестве дистрибутива Linux в этой статье. Вы можете использовать другие дистрибутивы Linux, но мы не можем гарантировать, что все команды (особенно установочные) будут работать в других дистрибутивах.

Требования к настройке подсистемы балансировки нагрузки

4 сервера с установленной системой CentOS (минимальная установка достаточно для этого учебника)

  • 2 CentOS для установки с nginx
  • 2 CentOS для настройки с HAProxy и Keepalived

В этом учебнике мы работали на следующими IP-адресами в качестве примера. Они могут быть изменены в соответствии с вашей системой. Не думайте, что это статические IP-адреса.

Web-сервер:

  • 10.13.211.169
  • 10.13.211.158

LoadBalancer:

  • 10.13.211.194
  • 10.13.211.120

Виртуальный IP:

  • 10.13.211.10

Шаг 1: Настройка веб-серверов с Nginx

В этой части мы будем использовать две системы CentOS в качестве веб-сервера. Сначала нужно установить Nginx на них.

Для этого добавьте репозиторий, содержащий nginx, и установите его оттуда:

 

После установки nginx запустите службу Nginx:

 

Включите службу nginx после каждой загрузки:

 

Проверка статуса сервиса nginx:

 

Разрешите веб-трафик в nginx, который по умолчанию блокируется брандмауэром CentOS.

 

Повторите описанные выше шаги и на веб-сервере второго CentOS.

Теперь обратите внимание на следующие шаги.

Веб-файлы для nginx находится в каталоге /usr/share/nginx/html. Изменение содержимого индекса.html-файл только для идентификации веб-серверов.

Для первого веб-сервера:

 

Для второго веб-сервера:

 

Примечание
Если вы находитесь на виртуальной машине, лучше установить и настроить Nginx на одной системе, а затем клонировать систему. После этого можно перенастроить вторую систему. Экономит время и уменьшает число ошибок.

Теперь подтвердите статус веб-сервера, перейдя по следующему URL в браузере: http://SERVER_DOMAIN_NAME или Local_IP_Address. Пример здесь:

 

или в терминале, curl Local_IP_Address. Пример здесь:

 

Вы получите такой выход:

Балансировка нагрузки с HAProxy, Nginx и Keepalived в Linux

Шаг 2: Настройка балансировщиков нагрузки с HAProxy

В двух других системах для установки HAProxy используйте следующие команды:

 

Файл конфигурации HAProxy находится в каталоге /etc/haproxy. Перейдите в каталог и создайте резервную копию файла перед редактированием.

 

Создайте новый файл haproxy.cfg и откройте файл с помощью любого редактора, который Вам нравится.

 

Теперь вставьте следующие строки в файл:

 

Теперь включите и запустите службу HAProxy.

 

Проверка состояния HAProxy:

 

Перейдите по url в браузере, чтобы подтвердить сервис haproxy: http://load balancer’s IP Address/haproxy?stats. Пример, используемый здесь:

 

или в терминале, используйте команду $ curl LoadBalancer_IP_Address

 

curl два раза, и вы увидите различные выходы для команды curl. Это происходит из-за того, что ответ поступает от разных веб-серверов (по одному за раз), для вашего запроса в подсистеме балансировки нагрузки.

Выходные данные будут выглядеть следующим образом:

Балансировка нагрузки с HAProxy, Nginx и Keepalived в Linux

Шаг 3: Настройка высокой доступности с Keepalived

Keepalived должен быть установлен в обеих системах haproxy load balancer CentOS (которые мы только что настроили выше). Один действует как главный (основной балансировщик нагрузки), а другой действует как резервный балансировщик нагрузки.

В обеих системах выполните следующую команду:

 

Конфигурационный файл Keepalived находится на файле /etc/keepalived/keepalived.conf. Создайте резервную копию исходного файла поддержки.conf и используйте следующую конфигурацию в новом файле keepalived .conf.

 

Вставьте следующие строки в файл конфигурации (не забудьте изменить адреса электронной почты):

 

Совет
Виртуальные IP-адреса могут быть любым реальным IP внутри вашей сети. Около диапазона IP-адреса Loadbalancer. Здесь, IP балансировщика нагрузки являются: 10.13.211.194 & 10.13.211.120, и VIP является 10.13.211.10

Отредактируйте файл конфигурации в соответствии с системным предположением. Позаботьтесь о главной и резервной конфигурации. Сохраните файл и запустите и включите процесс Keepalived:

 

Просмотр состояния Keepalived:

 

Совет
Если вы находитесь на виртуальной машине, лучше установить и настроить Haproxy и Keepalived на одной системе, а затем клонировать систему. После этого можно перенастроить вторую систему. Это экономит время и уменьшает количество ошибок.

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

 

Нажмитеctrl+c , чтобы остановить запущенный терминал.

Выходные данные будут выглядеть следующим образом:

Балансировка нагрузки с HAProxy, Nginx и Keepalived в Linux

 

Мы надеемся, что этот учебник помог вам настроить балансировщик нагрузки в Linux с высокой доступностью. Конечно, это была простая настройка, но она определенно дает представление о балансировке нагрузки и обработке высокой доступности.

Если у вас есть вопросы или предложения, пожалуйста, оставьте комментарий ниже

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Если статья понравилась, то поделитесь ей в социальных сетях:

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

ПОИГРАЙ, РАССЛАБЬСЯ

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close