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
сервер_01 3.19.229.234
сервер_02 3.17.9.217

Крок 1: Відредагуйте файл / etc / hosts для балансування навантаження

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

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

Закінчивши, збережіть зміни та закрийте файл конфігурації.

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

3.17.12.132 балансир навантаження

Після цього переконайтеся, що ви можете пінгувати балансування навантаження з сервера_01

І так само від server_02

Крім того, переконайтеся, що ви можете пінгувати сервери з балансу навантаження.

Ідеально ! всі сервери можуть взаємодіяти з балансиром навантаження!

Крок 2: Встановіть та налаштуйте проксі HA на балансуванні навантаження

Оскільки HA-проксі доступний з офіційного сховища CentOS, ми збираємось встановити його за допомогою менеджера пакетів yum або dnf.

Але як завжди, спочатку оновіть систему

# оновлення оновлення

Далі встановіть проксі HA, як показано

# yum встановити haproxy

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

# cd / etc / haproxy

Найкраща практика вимагає резервного копіювання будь-якого конфігураційного файлу перед внесенням будь-яких змін.  Тож резервне копіювання гапрокси.cfg файл, перейменувавши його.

# mv гапрокси.cfg гапрокси.cfg.бак

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

vim гапрокси.cfg

Переконайтеся, що ви внесли зміни, як показано

#---------------------------------------------------------------------
# Глобальні налаштування
#---------------------------------------------------------------------
глобальний
журнал 127.0.0.1 локальний2 # Конфігурація журналу
 
chroot / var / lib / haproxy
pidfile / var / run / haproxy.pid
maxconn 4000
user haproxy #Haproxy, що працює під користувачем та групою "haproxy"
груповий гапрокси
демон
 
# увімкнути сокет unix sots
stats socket / var / lib / haproxy / stats
 
#---------------------------------------------------------------------
# типових стандартних значень, які матимуть усі розділи "прослуховування" та "бекенд"
# використовувати, якщо це не вказано в їх блоці
#---------------------------------------------------------------------
за замовчуванням
режим http
журнал глобальний
варіант httplog
варіант dontlognull
варіант http-server-close
варіант вперед для крім 127.0.0.0/8
опція передіслати
повторні спроби 3
час очікування http-запит 10 секунд
черга очікування 1м
таймаут підключення 10с
час очікування клієнта 1м
сервер тайм-ауту 1м
час очікування http-Keep-Live 10s
час очікування 10 секунд
maxconn 3000
 
#---------------------------------------------------------------------
#HAProxy Monitoring Config
#---------------------------------------------------------------------
слухати haproxy3-monitoring *: 8080 #Haproxy Monitoring працює на порту 8080
режим http
варіант вперед для
варіант httpclose
статистика увімкнути
статистика шоу-легенди
статистика оновлення 5с
stats uri / stats #URL для моніторингу HAProxy
статистика сфера Haproxy \ Статистика
статистика auth Password123: Password123 # Користувач та Пароль для входу на інформаційну панель моніторингу
статистика admin, якщо TRUE
default_backend app-main # Це додатково для моніторингу бекенда
 
#---------------------------------------------------------------------
# Конфігурація FrontEnd
#---------------------------------------------------------------------
інтерфейс основний
прив'язка *: 80
варіант http-server-close
варіант вперед для
default_backend app-main
 
#---------------------------------------------------------------------
# BackEnd раунд як алгоритм балансу
#---------------------------------------------------------------------
бекенд app-main
баланс кругової ручки # Алгоритм балансу
варіант 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.конф

Переконайтеся, що ви прокоментували рядки нижче, щоб дозволити з'єднання UDP

$ ModLoad imudp
$ UDPServerRun 514

Далі продовжте і створіть новий файл конфігурації  гапрокси.конф

# vim / etc / rsyslog.г / гапрокси.конф

Вставте наступні рядки, збережіть і вийдіть

місцевий2.= info / var / log / haproxy-access.журнал # Для журналу доступу
місцевий2.повідомлення / var / log / haproxy-info.log #For Service Info - Backend, loadbalancer

Щоб зміни набрали чинності, перезапустіть демон rsyslog, як показано:

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

Потім запустіть і увімкніть HAProxy

# systemctl запустити rsyslog
# systemctl увімкнути rsyslog

Перевірте, чи працює HAProxy

# systemctl статус rsyslog

Крок 3: Встановіть та налаштуйте Nginx

Тепер залишається лише установка Nginx. Увійдіть на кожен із серверів і спочатку оновіть системні пакети:

# оновлення оновлення

Наступна інсталяція EPEL (додаткові пакети для корпоративного Linux)

# yum встановити epel-release

Щоб встановити Nginx, виконайте команду:

# yum встановити nginx

Далі запустіть і ввімкніть Nginx

# systemctl start nginx
# systemctl увімкнути nginx

Потім ми збираємося змінити індекс.html в обох випадках, щоб продемонструвати або змоделювати, як балансир навантаження здатний розподіляти веб-трафік між обома серверами.

Для сервера_01

# echo "server_01. Привіт ! Ласкаво просимо до першого веб-сервера "> index.html

Для сервера_02

# echo "server_02. Привіт ! Ласкаво просимо до другого веб-сервера "> index.html

Для внесення змін перезапустіть Nginx

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

Крок 4: Перевірка роботи балансира навантаження

Нарешті ми вже в точці, де хочемо побачити, чи працює конфігурація. Тож увійдіть у балансир навантаження та виконуйте команду curl кілька разів

# завиток 3.17.12.132

Ви повинні отримати змінний вихід на терміналі, що показує значення індексу.html із сервера_01 та сервера_02

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

http: // load-balancer-IP-адреса

На першій сторінці відображатиметься вміст будь-якого веб-сервера


Тепер оновіть веб-сторінку та перевірте, чи відображається вона на вмісті іншого веб-сервера

Ідеально ! Баланс навантаження розподіляє IP-трафік порівну між двома веб-серверами !
Це завершує цей підручник про те, як ви можете встановити та налаштувати HAProxy на CentOS 8. Ваш відгук буде дуже вдячний.

OpenTTD Tutorial
OpenTTD is one of the most popular business simulation games out there. In this game, you need to create a wonderful transportation business. However,...
SuperTuxKart for Linux
SuperTuxKart is a great title designed to bring you the Mario Kart experience free of charge on your Linux system. It is pretty challenging and fun to...
Battle for Wesnoth Tutorial
The Battle for Wesnoth is one of the most popular open source strategy games that you can play at this time. Not only has this game been in developmen...