Простейшая настройка 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.