Nginx реализует балансировку нагрузки

Nginx

Эта статья представляет Nginx для реализации балансировки нагрузки.В этой статье для реализации используются Nginx и два простых веб-приложения SpringBoot.

1. Подготовка.

В сочетании со сценарием в этой статье вам необходимо установить среду Nginx и Java (запустив проект SpringBoot).

1.1 Об установке Nginx в системе Linux вы можете прочитать в моей статье---(портал).

1.2 Поскольку это всего лишь тест, SpringBoot просто отображает корневой путь, порты 10001 и 10002, а строки demo1 и demo2 возвращаются как различия.

2. Введение в централизованный метод балансировки нагрузки Nginx

2.1 Опрос

Метод опроса является методом загрузки Nginx по умолчанию. Как следует из названия, все запросы распределяются по разным службам в хронологическом порядке. Если служба не работает, она может быть автоматически устранена. После настройки следующим образом служба 10001 и служба 10002 ротируется.

upstream  dalaoyang-server {
       server    localhost:10001;
       server    localhost:10002;
}

2.2 Вес

Укажите коэффициент веса каждой службы. Вес пропорционален коэффициенту доступа. Обычно он используется для серверных сервисных машин с непостоянной производительностью. Хорошей производительности присваивается высокий вес для максимизации производительности сервера. После следующей настройки доступ отношение 10002 услуг будет 10001 Двойное обслуживание.

upstream  dalaoyang-server {
       server    localhost:10001 weight=1;
       server    localhost:10002 weight=2;
}

2.3 iphash

Каждый запрос распределяется в соответствии с хеш-результатом доступа к ip.После этого процесса каждый посетитель может получить фиксированный доступ к серверной службе следующим образом (ip_hash может использоваться в сочетании с весом).

upstream  dalaoyang-server {
       ip_hash; 
       server    localhost:10001 weight=1;
       server    localhost:10002 weight=2;
}

2.4 Наименьшее количество соединений

Распределяйте запросы к службе с наименьшим количеством подключений.

upstream  dalaoyang-server {
       least_conn;
       server    localhost:10001 weight=1;
       server    localhost:10002 weight=2;
}

2.5 fair

Запросы распределяются в соответствии со временем отклика внутреннего сервера, и приоритет отдается тем, у которых короткое время отклика.

upstream  dalaoyang-server {
       server    localhost:10001 weight=1;
       server    localhost:10002 weight=2;
       fair;  
}

3. Конфигурация Nginx

Если взять в качестве примера обучение ротации, ниже приведен полный код nginx.conf.

worker_processes  1;

events {
    worker_connections  1024;
}


http {
   upstream  dalaoyang-server {
       server    localhost:10001;
       server    localhost:10002;
   }

   server {
       listen       10000;
       server_name  localhost;

       location / {
        proxy_pass http://dalaoyang-server;
        proxy_redirect default;
      }

    }

}

4. Тест

Перезапуск nginx, первый визитhttp://localhost:10000как показано на рисунке,

В следующий визит, как показано

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