Эта статья представляет 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как показано на рисунке,
В следующий визит, как показано
Если вы хотите изменить алгоритм балансировки нагрузки, вы можете изменить соответствующий вышестоящий модуль.