2017-02-22 41 views
2

Я имею в виду добавить вверх по течению, но не сервер в восходящем направлении.Как динамически добавлять восходящий поток в Nginx?

Это означает, что у меня нет выше по потоку блока, как:

upstream backend { 
    # ... 
} 

Я хочу создать вверх по течению блока динамически. Это что-то вроде:

content_by_lua_block { 
    upstream_block.add('backend'); 
    upstream_block.add_server('backend', '127.0.0.1', 8080); 
    upstream_block.add_server('backend', '127.0.0.1', 8081); 
    upstream_block.add_server('backend', '127.0.0.1', 8082); 
    upstream_block.del_server('backend', '127.0.0.1', 8080); 
} 

proxy_pass http://backend 
+0

Я не могу представить себе причину этого. Просто установите для него переменную и proxypass. –

+0

@AlexeyTen. Игнорируйте это: у меня много групп машин, и каждая группа имеет свои собственные машины. Все они динамичны. – XadillaX

ответ

1

Вы можете использовать balancer_by_lua * и https://github.com/openresty/lua-resty-core/blob/master/lib/ngx/balancer.md

Вы будете иметь полный контроль, который выше, выбранный для данного запроса.

Вы можете самостоятельно предоставление вам код или использовать существующий вверх по течению конфигурации в качестве источника с помощью https://github.com/openresty/lua-upstream-nginx-module