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 / hosts3.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. Ваш відгук буде дуже вдячний.