Як налаштувати сервер балансування навантаження Nginx на Ubuntu 20.04

Вступ

Балансування навантаження – це техніка або механізм, який розподіляє вхідні запити на групу внутрішніх серверів. Він використовується для підвищення доступності додатків, надійності та масштабованості. Ви можете додати багато серверів, коли трафік зростає. 

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:

Imagen1.png

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

Imagen2final.png

Висновок

Щиро вітаю! Ви успішно налаштували балансувальник навантаження Nginx на сервері Ubuntu 20.04.

Тепер ви можете додати кілька серверів до балансувальника навантаження, щоб розподілити навантаження між ними.

Якщо помітили помилки чи неточності, будь ласка, залишіть коментар чи напишіть листа на поштову адресу [email protected]

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *