V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
Livid
V2EX  ›  NGINX

server resolve

  •  
  •   Livid · 2015-02-05 00:18:55 +08:00 · 4147 次点击
    这是一个创建于 3579 天前的主题,其中的信息可能已经有所发展或是发生改变。

    http://nginx.org/en/docs/http/ngx_http_upstream_module.html

    NGINX 在 1.5.12 里的新功能,如果用域名作为 upstream 里的 server 地址,那么可以加上 resolve 参数让 NGINX 来追踪这个地址的解析变化。

    upstream example_backend {
        server www.example.com:80 resolve;
    }
    
    18 条回复    2015-02-05 15:41:03 +08:00
    cevincheung
        1
    cevincheung  
       2015-02-05 00:23:26 +08:00
    1.0.6在http段有resolve参数

    http {
    resolve 8.8.8.8;
    }
    LazyZhu
        2
    LazyZhu  
       2015-02-05 00:23:37 +08:00
    需要设置 http 的 resolver
    resolver 8.8.8.8;
    cevincheung
        3
    cevincheung  
       2015-02-05 00:24:08 +08:00
    update:


    是location段

    resolver 8.8.8.8
    Livid
        4
    Livid  
    MOD
    OP
       2015-02-05 00:29:15 +08:00
    抱歉,刚才实际测试了一下之后发现,这个功能只在 NGINX 商业版里有。

    Additionally, the following parameters are available as part of our commercial subscription.
    aveline
        5
    aveline  
       2015-02-05 00:31:19 +08:00   ❤️ 2
    Livid
        6
    Livid  
    MOD
    OP
       2015-02-05 01:21:25 +08:00
    @aveline 多谢分享。

    就是我还需要测一下这个 issue:

    https://github.com/GUI/nginx-upstream-dyanmic-servers/issues/1
    laomutuo
        7
    laomutuo  
       2015-02-05 07:35:16 +08:00
    @Livid 商业版价格多少?
    shixinyu
        8
    shixinyu  
       2015-02-05 09:51:42 +08:00
    fannheyward
        9
    fannheyward  
       2015-02-05 10:02:18 +08:00
    如果 upstream 只有一个地址,可以通过变量方式强制解析

    resolver 8.8.8.8;
    set $backend "foo.example.com";
    proxy_pass http://$backend;

    via http://forum.nginx.org/read.php?2,215830,215832#msg-215832
    wwek
        10
    wwek  
       2015-02-05 10:03:16 +08:00
    这个功能好. 不用我老是去重启了```
    wwek
        11
    wwek  
       2015-02-05 10:03:44 +08:00
    @Livid 啊,奥商业版``
    不知道淘宝的支持否`
    wwek
        12
    wwek  
       2015-02-05 10:04:33 +08:00
    qq286735628
        13
    qq286735628  
       2015-02-05 10:11:18 +08:00
    'NGINX 来追踪这个地址的解析变化'是做什么用的?缓存DNS解析这步?那直接upstream一个IP呢?
    wwek
        14
    wwek  
       2015-02-05 10:18:52 +08:00
    server
    {
    listen 80;
    server_name xxxx.3322.org;

    resolver 8.8.8.8;
    set $backend " xxxx.3322.org";

    location / {
    proxy_pass http://$backend:2222;
    proxy_redirect off;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;
    }
    }
    wwek
        15
    wwek  
       2015-02-05 10:20:19 +08:00   ❤️ 1
    @qq286735628 upstream 指定的域名解析有变动.nginx默认是不会去追踪的.
    1\应用场景,upstream用的域名,而这个时候又修改了解析
    2\比如我这里用3322动态dns,解析了新的ip
    3\其他
    wwek
        16
    wwek  
       2015-02-05 10:23:46 +08:00   ❤️ 1
    @qq286735628 直接 upstream ip当然就不存在这个问题了.
    qq286735628
        17
    qq286735628  
       2015-02-05 12:36:19 +08:00
    @wwek 原来是这样
    ryd994
        18
    ryd994  
       2015-02-05 15:41:03 +08:00 via Android
    @qq286735628 总之就是不买商业你就要手动改upstream。有resolve的话,如果服务器多,就可以直接改DNS,自动同步下去了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2796 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 02:36 · PVG 10:36 · LAX 18:36 · JFK 21:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.