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

Балансування навантаження - це дуже корисна методика розподілу вхідного мережевого трафіку на декількох серверах. За допомогою цієї методики ви можете зменшити використання ресурсів, зменшити час відгуку та уникнути перевантаження сервера. У цьому підручнику ми проведемо вам кроки з налаштування Nginx балансування навантаження на Linux VPS.

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

Почнемо з установки та налаштування.

Ввійдіть на свій сервер як корінь користувача

ssh root @ IP_Address

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

apt-get update && apt-get update

Нам потрібен веб-сервер Nginx, встановлений на VPS. Запустіть таку команду, щоб встановити Nginx

apt-get install nginx

Після встановлення перевірте, чи працює веб-сервер

Стан сервера nginx ● nginx.service - високопродуктивний веб-сервер та зворотний проксі-сервер Завантажений: завантажений (/lib/systemd/system/nginx.service; ввімкнений; попередній номер постачальника: ввімкнено) активний: активний (працює)

Тепер відкрийте файл конфігурації Nginx свого улюбленого текстового редактора

vim /etc/nginx/sites-available/yourdomain.com.conf

і додайте конфігурацію балансування навантаження у верхній частині файлу

upload loadbalancer {сервер vps1.yourdomain.com; сервер vps2.yourdomain.com; сервер vps3.yourdomain.com; }

Ви повинні встановити Nginx та прослухати на порту 80 на всіх серверах, перерахованих вище.

У межах одного файлу конфігурації yourdomain.com.conf ми повинні додати модуль upstream в конфігурацію virtualhost

сервер {location / {proxy_pass http: // loadbalancer; }}

Збережіть файл і перезапустіть Nginx, щоб зміни вступили в силу.

сервіс nginx перезавантаження

Ця конфігурація однаково розподілить весь вхідний трафік на трьох серверах (vps1.yourdomain.com, vps2.yourdomain.com, vps3.yourdomain.com). Nginx також може бути налаштований на більш ефективне поширення трафіку. Він поставляється з балансувальними параметрами, такими як балансування ваги, макс невдачі та балансування IP-хешу.

Балансування ваги

Ми можемо використовувати цей параметр, щоб вказати частку трафіку, розподіленого для кожного з серверів, які ми перерахували у висхідному потоці.

Наприклад:

upload loadbalancer {сервер vps1.yourdomain.com вага = 1; сервер vps2.yourdomain.com вага = 2; сервер vps3.yourdomain.com вага = 5; }

У цьому прикладі vps2.yourdomain.com отримає вдвічі більше трафіку порівняно з vps2.yourdomain.com, а vps3.yourdomain.com отримає у п'ять разів більше трафіку, ніж vps1.yourdomain.com.

Макс не працює

Якщо ви користуєтеся налаштуваннями Nginx за замовчуванням, він надсилатиме дані на сервери, навіть якщо вони вниз. Ми можемо використовувати опцію Макс, щоб запобігти подібним випадкам.

upload loadbalancer {сервер vps1.yourdomain.com max_fails = 4 fail_timeout = 20s; сервер vps2.yourdomain.com вага = 2; сервер vps3.yourdomain.com вага = 4; }

У наведеному вище прикладі Nginx намагатиметься підключитися до vps1.yourdomain.com, і якщо він не відповідатиме більше, ніж 20 секунд, це зробить ще одну спробу. Після чотирьох спроб vps1.yourdomain.com буде вважатися вниз.

IP Hash Balancing

За допомогою цього методу відвідувачі завжди будуть надсилатись на той самий сервер. Отже, якщо відвідувач отримав вміст vps1.yourdomain.com, він завжди буде перенесено на цей сервер, якщо сервери не будуть доступні або недоступні.

завантажувальний балансовий завантажувач {ip_hash; сервер vps1.yourdomain.com; сервер vps2.yourdomain.com; сервер vps3.yourdomain.com вниз; }

У цьому прикладі, vps3.yourdomain.com, як відомо, недоступний, і він позначений як вниз.

джерело

залишити коментар

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.