V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
saytesnake
V2EX  ›  程序员

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

  •  
  •   saytesnake · 2020-07-19 12:24:50 +08:00 · 2238 次点击
    这是一个创建于 1593 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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 之类的可以实现快捷切换吗?

    4 条回复    2020-07-21 11:07:58 +08:00
    Jirajine
        1
    Jirajine  
       2020-07-19 12:32:45 +08:00 via Android
    你可能需要 treafik
    https://containo.us/traefik/
    halfcrazy
        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;
    monkeyNik
        4
    monkeyNik  
       2020-07-21 11:07:58 +08:00
    可以参考:Github 的 yzprofile/ngx_http_dyups_module,可以动态增加、删除、更新 upstream
    或者也可以考虑是用 nginx.zone 这个网站上面的 Nginx 发行版,提供了不仅仅是动态 upstream 更新,也提供了动态 location 更新,无需 reload 。也提供了各种其他功能,基本全部指令对动态 location 支持。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3214 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 12:52 · PVG 20:52 · LAX 04:52 · JFK 07:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.