НОВИНКА! VPS на базі EPYC + NVMe

Увійти
+1 (855) 311-1555

Як збалансувати навантаження на сайт за допомогою NGINX та багатолокаційного VPS-хостингу

5 хв читання - 7 липня 2025 р.

hero image

Table of contents

Share

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

Як збалансувати навантаження на сайт за допомогою NGINX і багатолокального VPS

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

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


Крок 1: Розгортання серверів VPS у різних регіонах

Почніть з розгортання екземплярів VPS у різних географічних регіонах, наприклад, один у Нью-Йорку, один у Франкфурті та один у Сінгапурі. Кожен VPS повинен працювати:

  • Копія вашого веб-сайту або програми
  • NGINX (якщо він також використовується як локальний веб-сервер)
  • Доступ по SSH для налаштування та обслуговування

Переконайтеся, що вміст і конфігурації узгоджуються на всіх серверах.


Крок 2: Налаштуйте VPS для роботи в якості балансувальника навантаження

Виберіть один VPS, який буде виконувати функції зворотного проксі-сервера і балансувальника навантаження, або створіть новий VPS для цієї мети. Цей сервер буде спрямовувати трафік на внутрішні вузли VPS.

Використовуйте базову конфігурацію зворотного проксі-сервера NGINX, яка визначає висхідну групу і перенаправляє вхідні запити на ваші внутрішні вузли.

Ось приклад конфігурації NGINX для вашого проксі

http { upstream backend_servers { server vps1.example.com; server vps2.example.com; server vps3.example.com; } server { listen 80; location / { proxy_pass http://backend_servers; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } }

Крок 3: Усунення єдиної точки відмови

Проблема

VPS, на якому розміщено зворотний проксі NGINX, стає єдиною точкою відмови. Якщо цей сервер виходить з ладу, весь ваш сайт стає недоступним - навіть якщо внутрішні сервери все ще працюють.

Рішення

Варіант 1: Висока доступність з плаваючою IP-адресою

Використовуйте такі інструменти, як Keepalived або Pacemaker з VRRP, щоб створити плаваючу IP-адресу між двома або більше вузлами NGINX. Якщо один з них виходить з ладу, IP автоматично перемикається на інший.

Варіант 2: Балансування навантаження на рівні DNS

Запустіть кілька вузлів балансувальника навантаження NGINX і використовуйте кругову DNS або GeoDNS (наприклад, AWS Route 53, Cloudflare Load Balancing) для розподілу трафіку між ними.

Варіант 3: Anycast IP (розширений)

Рекламуйте одну і ту ж IP-адресу з декількох географічних регіонів за допомогою BGP і Anycast. Трафік автоматично спрямовується до найближчого вузла на основі місцезнаходження користувача.

Порада: Поєднання географічної маршрутизації на основі DNS з високодоступними проксі-серверами NGINX забезпечує найкраще покриття та відмовостійкість.


Крок 4: Перевірка працездатності та логіка обходу відмов

Хоча NGINX з відкритим вихідним кодом не підтримує активну перевірку стану, він припиняє маршрутизацію до несправного вузла після помилок з'єднання. Для більш розширеної перевірки стану:

  • Використовуйте NGINX Plus
  • Або створіть зовнішню логіку моніторингу та обходу відмови за допомогою cron + curl + перезавантаження конфігурації

Крок 5: Вкажіть ваш домен на балансувальник навантаження

Оновіть записи DNS, щоб вони вказували на IP-адресу вашого зворотного проксі-сервера NGINX (або плаваючу IP-адресу, якщо ви використовуєте HA). Якщо ви використовуєте декілька проксі-серверів, налаштуйте DNS-провайдера на збалансований за навантаженням або географічний дозвіл.


Необов'язково: Маршрутизація з урахуванням геолокації

NGINX сам по собі не обробляє маршрутизацію на основі геолокації, але ви можете підключити її до нього:

  • GeoDNS: Використовуйте DNS-провайдера, який спрямовує користувачів до найближчого сервера
  • Anycast IP-адреси: Розподіл одного і того ж IP з декількох центрів обробки даних, що дозволяє оптимізувати глобальну маршрутизацію

Запит користувача | v +---------------------+ | GeoDNS / Load-aware | | Рівень маршрутизації DNS | +---------------------+ | v +----------------------+ | Регіональний проксі-сервер NGINX (HA або Anycast IP) | +----------------------+ | v +---------------------+ | Вузли VPS Backend

+---------------------+

Заключні думки

Використання NGINX для балансування навантаження між декількома VPS-серверами допомагає вам масштабуватися в глобальному масштабі і зменшити затримки. Але пам'ятайте: зворотний проксі повинен бути високодоступним, інакше він стає проблемою.

Щоб усунути єдину точку відмови, розгляньте розподіл навантаження на основі DNS, плаваючі IP-адреси або мережу Anycast. При ретельному плануванні ваш багатосайтовий VPS може забезпечити швидку, відмовостійку роботу в масштабі.

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

Блог

На цьому тижні

Більше статей
server administrator

Як обрати правильний рівень RAID для вашого бізнесу

Для будь-якого бізнесу - малого, середнього чи великого - дані є критично важливим активом. Хоча підприємці часто інвестують у надійні системи для запуску своїх додатків, вони іноді нехтують впровадженням належних заходів захисту даних. Реальність проста: _втрата даних дорівнює втраті бізнесу_ . Одним з ефективних способів підвищити захист і продуктивність даних є інтеграція RAID-масиву в конфігурацію вашого сховища.

3 хв читання - 7 липня 2025 р.

Чому важливо мати потужний і нелімітований VPS

3 хв читання - 7 липня 2025 р.

Більше статей
background image

Маєте запитання чи потребуєте індивідуального рішення?

icon

Гнучкі опції

icon

Глобальне охоплення

icon

Миттєве розгортання

icon

Гнучкі опції

icon

Глобальне охоплення

icon

Миттєве розгортання