技术解析

server resolve
0
2021-05-26 17:57:46
idczone

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;
}

1.0.6在http段有resolve参数
http {
resolve 8.8.8.8;
}

需要设置 http 的 resolver
resolver 8.8.8.8;

update:

是location段
resolver 8.8.8.8

抱歉,刚才实际测试了一下之后发现,这个功能只在 NGINX 商业版里有。
Additionally, the following parameters are available as part of our commercial subscription.

可以试试这个 module
https://github.com/GUI/nginx-upstream-dyanmic-servers

多谢分享。
就是我还需要测一下这个 issue:
https://github.com/GUI/nginx-upstream-dyanmic-servers/issues/1

商业版价格多少?

https://cs.nginx.com/cart

如果 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

这个功能好. 不用我老是去重启了```

啊,奥商业版``
不知道淘宝的支持否`



谢谢`

'NGINX 来追踪这个地址的解析变化'是做什么用的?缓存DNS解析这步?那直接upstream一个IP呢?

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;
}
}

upstream 指定的域名解析有变动.nginx默认是不会去追踪的.
1\应用场景,upstream用的域名,而这个时候又修改了解析
2\比如我这里用3322动态dns,解析了新的ip
3\其他

直接 upstream ip当然就不存在这个问题了.

原来是这样

总之就是不买商业你就要手动改upstream。有resolve的话,如果服务器多,就可以直接改DNS,自动同步下去了

数据地带为您的网站提供全球顶级IDC资源