Если вы хотите динамически управлять upstream в nginx через API без перезагрузки и релоада, то вам поможет этот модуль.
Пример конфигурации upstream в nginx
upstream backends {
zone zone_for_backends 1m;
server 127.0.0.1:6001;
server 127.0.0.1:6002;
server 127.0.0.1:6003;
}
Пример настройка для доступа к API
server {
listen 6000;
location /dynamic {
allow 127.0.0.1;
deny all;
dynamic_upstream;
}
}
Пример вызова:
$ curl "http://127.0.0.1:6000/dynamic?upstream=zone_for_backends"
Ответ:
server 127.0.0.1:6001;
server 127.0.0.1:6002;
server 127.0.0.1:6003;
С помощью API вы сможете посмотреть список серверов в upstream, добавить, удалить, выключить, включить и изменить параметры сервера.
Более подробно можно посмотреть на странице проекта ngx_dynamic_upstream.