Nginx — настройка load balancer

Простейшая настройка nginx в качестве load balancer может выглядеть следующим образом. Открываем nginx.conf, добавляем секцию серверов upstream и даём ей имя (например loadbalancer). Серверы могут слушать на разных портах. Кроме того, можно одновременно использовать серверы, слушающие на TCP- и UNIX-сокетах.

В нашем случае:

...
upstream loadbalancer {
    server 172.17.0.1:5000;
    server 172.17.0.1:5001;
}
...

Далее в секции server указываем nginx что нам нужно проксировать запросы с определенных роутов на наш loadbalancer:

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

Это в принципе все что требуется для включения режима в nginx.

По умолчанию запросы распределяются по серверам циклически (в режиме round-robin) с учётом весов серверов. допустим:

upstream loadbalancer {
    server 172.17.0.1:5000 weight 3;
    server 172.17.0.1:5001 weight 7;
}

Получается три запроса будут идти на сервер с поротом 5000, остальные семь на 5001, далее опять на порт 5000.

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *