upstream foo {
server 127.0.0.1:8081;
}
upstream foo_back {
server 127.0.0.1:8080;
}
upstream bar {
server 127.0.0.2:8081;
}
upstream bar_back {
server 127.0.0.2:8080;
}
localtion / {
proxy_pass http://foo;
}
localtion /back {
proxy_pass http://foo_back;
}
要切换到 bar 就要修改 proxy_pass 里面的,如果实际情况是很多 upstream,很多 localtion,有什么插件或是 lua 之类的可以实现快捷切换吗?
1
Jirajine 2020-07-19 12:32:45 +08:00 via Android
你可能需要 treafik
https://containo.us/traefik/ |
2
halfcrazy 2020-07-19 15:57:06 +08:00 1
lua 变量替代 proxy_pass 里写死的 upstream
set $backend "default"; rewrite_by_lua_block { ngx.var.backend="foo" } proxy_pass http://backend; |
3
des 2020-07-19 16:35:07 +08:00 1
|
4
monkeyNik 2020-07-21 11:07:58 +08:00
可以参考:Github 的 yzprofile/ngx_http_dyups_module,可以动态增加、删除、更新 upstream
或者也可以考虑是用 nginx.zone 这个网站上面的 Nginx 发行版,提供了不仅仅是动态 upstream 更新,也提供了动态 location 更新,无需 reload 。也提供了各种其他功能,基本全部指令对动态 location 支持。 |