Балансування навантаження є найпоширенішою практикою розподілу вхідного веб-трафіку між кількома серверними серверами. Це робить додаток високодоступним, навіть якщо деякі сервери з якихось причин не працюють. Балансування навантаження збільшує ефективність та надійність веб-додатків. З тією ж метою використовується балансир навантаження HAProxy. Це найбільш широко використовуваний балансир навантаження в галузях промисловості. Відповідно до офіційного веб-сайту, HAProxy використовується провідними компаніями, такими як AWS, Fedora, Github та багатьма іншими.
Проксі-сервер HAProxy або High Availability надає рішення про високу доступність та проксі-сервер. Він написаний на C і працює на мережевому та прикладному рівнях моделі TCP / IP. Найкраще те, що він має безкоштовну версію спільноти, і це додаток з відкритим кодом. Він працює на операційних системах Linux, FreeBSD та Solaris. Є і корпоративне видання, але воно має цінник.
У цьому посібнику ми побачимо Як встановити HAProxy та налаштувати сервер балансування навантаження на Debian 10.
Передумови:
- «Sudo» доступ до всіх машин та базові знання запуску команд у терміналі Linux.
- Приватні IP-адреси, додані до серверів балансування навантаження та серверних серверів.
- Операційна система Debian 10, встановлена на всіх машинах.
Встановлення HAProxy на Debian 10
Для нашого посібника ми припустимо наступну конфігурацію IP-адреси:
- HAProxy балансир навантаження 10.0.12.10
- Веб-сервер1: IP-адреса: 10.0.12.15
- Веб-сервер2: IP-адреса: 10.0.12.16
Крок 1. Оновіть сховище та пакети системи Debian
Спочатку запустіть наведені нижче команди на всіх системах, щоб оновити програмні пакети до останнього.
$ sudo apt оновлення$ sudo apt upgrade -y
Крок: 2 Встановіть Nginx на внутрішніх серверах
Підготуйте свої внутрішні сервери, встановивши веб-сервер Nginx на кожному. Ви також можете встановити інші веб-сервери, такі як apache.
Щоб встановити Nginx, виконайте такі команди на кожному серверному сервері у своєму середовищі:
$ sudo apt встановити nginxКрок: 3 Після того, як Nginx буде встановлений на ваших серверах, запустіть службу, як показано нижче:
$ Sudo systemctl запустити nginxПОРАДА: Ми також можемо керувати веб-сервером nginx, використовуючи команду нижче:
$ sudo / etc / init.d / nginx “параметр”варіант: почати перезавантажувати статус перезапуску зупинка
Крок: 4 Створіть власні сторінки індексу у веб-папці кожного веб-сервера Nginx. Це допоможе нам розрізнити, який внутрішній сервер обслуговує вхідні запити.
На кожному веб-сервері виконайте такі завдання:
Створіть резервну копію вихідного індексного файлу, використовуючи таку команду:
$ sudo cp / usr / share / nginx / html / index.html / usr / share / nginx / html / index.html.оригДодайте власний текст до покажчика.файл HTML. Ми додаємо IP-адресу кожного веб-сервера.
Для веб-сервера 1:
$ sudo echo "Веб-сервер 1:10.0.12.15 "| sudo tee / usr / share / nginx / html / index.htmlДля веб-сервера 2:
$ sudo echo "Веб-сервер 2: 10.0.12.16 "| sudo tee / usr / share / nginx / html / index.htmlВи також можете використовувати редактор vi, якщо вам це зручніше. Це показано нижче:
$ sudo vi / usr / share / nginx / html / index.htmlКоли файл відкрито, введіть текст і збережіть файл.
Відкрийте файл віртуального хосту за замовчуванням у каталозі “/ etc / nginx / sites-available /”.
$ sudo nano / etc / nginx / sites-available / defaultТепер всередині блоку сервера змініть кореневу директиву з “/ var / www / html” на “/ usr / share / nginx / html”.
Щоб перевірити конфігурацію Nginx, виконайте таку команду:
$ sudo nginx -tКрок 5: Тепер перезапустіть службу за допомогою команди:
$ sudo systemctl перезапустіть nginxВи можете перевірити статус nginx, використовуючи таку команду:
$ sudo systemctl статус nginxКрок: 6 Щоб встановити HAProxy на Debian 10 (Buster), виконайте таку команду на балансуванні навантаження.
$ sudo apt install haproxy -yПорада: Після встановлення HAProxy ви можете керувати HAProxy за допомогою скрипту ініціалізації. Для цього встановіть для параметра «enabled» значення 1 у «/ etc / default / haproxy», як показано нижче:
$ sudo vi / etc / default / haproxyУВІМКНЕНО = 1
Тепер наступний параметр можна використовувати зі скриптом ініціювання:
опція $ sudo service haproxy."варіант: почати перезавантажувати статус перезавантаження зупинка
Крок: 7 Тепер налаштуйте балансування навантаження HAProxy, відредагувавши файл конфігурації за замовчуванням haproxy, тобто.e. “/ Etc / haproxy / haproxy.cfg ". Щоб відредагувати цей файл, виконайте таку команду
$ sudo vi / etc / haproxy / haproxy.cfgПорада: Будь ласка, зробіть резервну копію оригінального файлу, щоб у випадку, якщо щось піде не так, ми були в безпеці. Щоб виконати резервне копіювання, використовуйте таку команду:
$ sudo cp / etc / haproxy / haproxy.cfg / etc / haproxy / haproxy.cfg.оригТепер перейдіть до кінця файлу та відредагуйте таку інформацію:
інтерфейс Local_Serverпов'язувати 10.0.12.10:80
режим http
веб-сервер default_backend
серверний сервер -
режим http
баланс кругової
варіант вперед для
http-запит set-header X-Forwarded-Port% [dst_port]
http-request add-header X-Forwarded-Proto https if ssl_fc
варіант httpchk HEAD / HTTP / 1.1rnHost: localhost
веб-сервер1 10.0.12.15:80
сервер web2 10.0.12.16:80
Примітка: Не забудьте змінити IP-адреси у наведеному вище файлі на ту, яку ви додали до своїх веб-серверів.
Крок: 8 Перевірте синтаксис конфігурації вищезазначеного файлу за допомогою такої команди:
$ sudo haproxy -c -f / etc / haproxy / haproxy.cfgЯкщо все піде правильно, на екрані з’явиться такий вивід: «Файл конфігурації дійсний.”Якщо у вихідних даних з’являється помилка, перевірте файл конфігурації та перевірте його ще раз.
Крок: 9 Тепер перезапустіть службу HAProxy, щоб застосувати зміни
Перезапуск служби haproxy служби $ sudoТестування конфігурації
Тепер настав час перевірити, чи працює наша установка належним чином. Введіть IP-адресу системи балансування навантаження у веб-браузері (у нашому випадку це 10.0.12.10) та постійно оновлюйте сторінку протягом 2-4 разів, щоб перевірити, чи працює HAProxy балансир навантаження належним чином. Ви повинні побачити різні IP-адреси або будь-який текст, який ви ввели в індекс.html, коли ви продовжуєте кілька разів оновлювати сторінку.
Інший спосіб перевірки - вимкнути один веб-сервер у автономному режимі та перевірити, чи не обслуговує запити інший веб-сервер.
Це все, що на даний момент! Спробуйте поекспериментувати з HAProxy, щоб дізнатися більше про те, як це працює. Для e.g., Ви можете спробувати:
- Інтеграція різних веб-серверів поряд із nginx.
- Зміна алгоритму балансування навантаження на щось інше, ніж круговий.
- Налаштування перевірки працездатності HAProxy, щоб визначити, працює внутрішній сервер чи ні.
- Застосування липких сеансів для підключення користувача до того самого серверного сервера.
- Використання статистики HAProxy для отримання інформації про трафік на серверах.
HAProxy має велику документацію, доступну як для версії спільноти HAProxy, так і для корпоративної версії HAProxy. Ознайомтеся з цією документацією, щоб отримати більше інформації про підвищення продуктивності та надійності серверного середовища.
Цей посібник успішно виконано на Debian 10 (Buster). Спробуйте встановити HAProxy на інші дистрибутиви на основі Debian, такі як Ubuntu, Linux Mint тощо. Будь ласка, не забудьте поділитися цим посібником з іншими.