Вступ
Балансування навантаження – це техніка або механізм, який розподіляє вхідні запити на групу внутрішніх серверів. Він використовується для підвищення доступності додатків, надійності та масштабованості. Ви можете додати багато серверів, коли трафік зростає.
Nginx підтримує кілька методів балансування навантаження. Нижче наведено коротке пояснення кожного з них:
- IP-hash: цей метод використовує алгоритм, який використовує IP-адресу джерела та призначення клієнта та сервера для створення унікального хеш-ключа. ІТ дозволяють підтримувати сеанс.
- Round-robin: це метод за замовчуванням для балансування навантаження. Він дає команду балансувальнику навантаження повернутися до початку списку та повторює знову.
- Least-connected: цей метод використовує алгоритм динамічного балансування навантаження. Він розподіляє підключення до учасника пулу, який наразі керує найменшою кількістю відкритих підключень на момент отримання нового запиту на підключення.
У цьому посібнику ми дізнаємося, як налаштувати балансування навантаження Nginx на сервері Ubuntu 20.04.
Розпочнім!
Вимоги
- Три сервера, що працюють на Ubuntu 20.04.
- Дійсне доменне ім’я вказує на IP-адресу сервера балансування навантаження.
- На кожному сервері встановлюється пароль root.
Для цілей цієї статті ми будемо використовувати такі налаштування:
- Балансувальник навантаження Nginx: 192.168.10.10
- Сервер програм 1: 192.168.10.11
- Сервер додатків 2: 192.168.10.12
Встановіть сервер Nginx
По-перше, вам потрібно буде встановити Nginx на всіх серверах. Ви можете встановити його за допомогою такої команди:
# apt-get install nginx -y
Після встановлення запустіть службу Nginx і ввімкніть її запуск під час перезавантаження системи:
# systemctl start nginx
# systemctl enable nginx
Налаштувати сервери додатків
Далі вам потрібно буде налаштувати обидва сервери додатків.
На першому сервері програм видаліть стандартний файл index.html і створіть новий:
# rm -rf /usr/share/nginx/html/index.html
# nano /usr/share/nginx/html/index.html
Додайте такі рядки:
<html>
<title>First Application Server</title>
<body>
This is my first application server
</body>
</html>
Збережіть і закрийте файл.
На другому сервері програм видаліть стандартний файл index.html і створіть новий файл:
# rm -rf /usr/share/nginx/html/index.html
# nano /usr/share/nginx/html/index.html
Додайте такі рядки:
<html>
<title>Second Application Server</title>
<body>
This is my second application server
</body>
</html>
Збережіть і закрийте файл.
Налаштуйте балансувальник навантаження Nginx
Далі вам потрібно буде налаштувати сервер балансування навантаження, який розподіляє навантаження між обома серверами додатків.
Спочатку видаліть файл конфігурації Nginx за замовчуванням і створіть новий файл конфігурації балансувальника навантаження:
# rm -rf /etc/nginx/sites-enabled/default # nano /etc/nginx/conf.d/load-balancing.conf
Додайте такі рядки:
upstream backend { server 192.168.10.11; server 192.168.10.12; } server { listen 80; server_name loadbalancing.example.com; location / { proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_pass http://backend; } }
Збережіть і закрийте файл, коли закінчите.
Використовуйте наступні рядки, якщо ви хочете використовувати метод Least_conn :
upstream backend { least_conn; server 192.168.10.11; server 192.168.10.12; }
Використовуйте наступні рядки, якщо ви хочете використовувати метод Ip_hash :
upstream backend { ip_hash; server 192.168.10.11; server 192.168.10.12; }
Збережіть і закрийте файл, а потім перевірте Nginx на наявність синтаксичних помилок за допомогою такої команди:
# nginx -t
Ви повинні побачити наступний результат:
# nginx: the configuration file /etc/nginx/nginx.conf syntax is ok # nginx: configuration file /etc/nginx/nginx.conf test is successful
Потім перезапустіть службу Nginx, щоб застосувати зміни:
# systemctl restart nginx
Перевірте балансування навантаження
Тепер відкрийте веббраузер і перейдіть до сервера балансування навантаження за допомогою URL-адреси http://loadbalancing.example.com. Ви будете перенаправлені на сервер додатків 1:
Тепер постійно оновлюйте сторінку через деякий час, коли ваша програма має бути завантажена з другого сервера програм, як показано нижче
Висновок
Щиро вітаю! Ви успішно налаштували балансувальник навантаження Nginx на сервері Ubuntu 20.04.
Тепер ви можете додати кілька серверів до балансувальника навантаження, щоб розподілити навантаження між ними.
Якщо помітили помилки чи неточності, будь ласка, залишіть коментар чи напишіть листа на поштову адресу [email protected]