Поиск по сайту:
Почему распалась римская империя? Как по-латыни автоматизация конторских работ? (Алан.Дж.Перлис)

Как настроить Nginx для балансировки нагрузки

15.11.2016
Как настроить Nginx для балансировки нагрузки

Балансировка нагрузки является очень полезным методом для распределения входящего сетевого трафика через ряд серверов. С помощью этого метода вы можете уменьшить использование ресурсов, снизить время отклика и избежать перегрузки сервера. На этом уроке, мы будем направим вас через этапы настройки балансировки нагрузки в Nginx на Linux.

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

Давайте начнем с установки и настройки.

Войдите на сервер в качестве пользователя root

ssh root@IP_Address

 

и убедитесь, что все пакеты, установленные на сервере в актуальном состоянии

apt-get update && apt-get upgrade

 

Нам нужен веб-сервер Nginx, установленный на Linux VPS. Выполните следующую команду, чтобы установить Nginx

apt-get install nginx

 

После установки, проверьте, что веб-сервер активен

service nginx status

● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running)

 

Теперь откройте конфигурационный файл Nginx вашего сайта текстовым редактором vim

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

 

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

upstream loadbalancer {
server vps1.yourdomain.ru;
server vps2.yourdomain.ru;
server vps3.yourdomain.ru;
}

 

Вы должны установить порт 80 на всех серверах, перечисленных выше Nginx.

В том же файле конфигурации yourdomain.ru.conf нам нужно добавить модуль upstream в конфигурацию virtualhost

server {
location / {
proxy_pass http://loadbalancer;
}
}

 

Сохраните файл и перезапустите Nginx для того, чтобы изменения вступили в силу.

service nginx restart

 

Эта конфигурация будет в равной степени распределить весь входящий трафик по всем трем серверам (vps1.yourdomain.ru, vps2.yourdomain.ru, vps3.yourdomain.ru). Nginx может быть также выполнен с возможностью более эффективно распределять трафик. Он поставляется с опциями балансировки, такие как weight balancing, max fails и IP hash balancing.

Weight Balancing

Мы можем использовать эту опцию, чтобы указать часть трафика распределятся по каждому из серверов, которые мы перечислили в upstream.

Например:

upstream loadbalancer {
server vps1.yourdomain.ru weight=1;
server vps2.yourdomain.ru weight=2;
server vps3.yourdomain.ru weight=5;
}

 

В этом примере, vps2.yourdomain.ru получит в два раза больше трафика по сравнению с vps2.yourdomain.ru и vps3.yourdomain.ru получит в пять раз больше трафика, чем vps1.yourdomain.ru.

Max Fails

Если вы используете настройки Nginx по умолчанию, он будет посылать данные на серверы, даже если они упали. Мы можем использовать опцию Max fails для возможности предотвратить такие случаи.

upstream loadbalancer {
server vps1.yourdomain.ru max_fails=4  fail_timeout=20s;
server vps2.yourdomain.ru weight=2;
server vps3.yourdomain.ru weight=4;
}

 

В приведенном выше примере, Nginx будет пытаться подключиться к vps1.yourdomain.ru и если он не отвечает на запросы в течение более 20 секунд, он сделает еще одну попытку. После четырех попыток vps1.yourdomain.ru будет рассматриваться как нерабочий.

IP Hash Balancing

С помощью этого метода, посетители всегда будут отправлены на тот же сервер. Таким образом, если посетитель получил содержание vps1.yourdomain.ru, то он будет всегда передается на этот сервер, если только серверы не упали или недоступны.

upstream loadbalancer {
ip_hash;
server vps1.yourdomain.ru;
server vps2.yourdomain.ru;
server vps3.yourdomain.ru down;
}

 

В этом примере, vps3.yourdomain.ru, как известно, недоступен, и он помечен как упал.

Как настроить Nginx для балансировки нагрузки

PS. Если вам понравился этот пост, пожалуйста поделитесь им с друзьями в социальных сетях помощью кнопок на левой стороне поста или просто оставьте комментарий ниже. Заранее благодарю.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Поделиться в соц. сетях:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Читайте также

Спасибо!

Теперь редакторы в курсе.