快速切换 Nginx 的 upstream 有正确的姿势吗?

2020-07-19 12:24:50 +08:00
 saytesnake
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 之类的可以实现快捷切换吗?

2230 次点击
所在节点    程序员
4 条回复
Jirajine
2020-07-19 12:32:45 +08:00
你可能需要 treafik
https://containo.us/traefik/
halfcrazy
2020-07-19 15:57:06 +08:00
lua 变量替代 proxy_pass 里写死的 upstream
set $backend "default";
rewrite_by_lua_block {
ngx.var.backend="foo"
}
proxy_pass http://backend;
des
2020-07-19 16:35:07 +08:00
monkeyNik
2020-07-21 11:07:58 +08:00
可以参考:Github 的 yzprofile/ngx_http_dyups_module,可以动态增加、删除、更新 upstream
或者也可以考虑是用 nginx.zone 这个网站上面的 Nginx 发行版,提供了不仅仅是动态 upstream 更新,也提供了动态 location 更新,无需 reload 。也提供了各种其他功能,基本全部指令对动态 location 支持。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/691307

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX