有了这个configuration:
upstream some_upstream { server some-elb.us-east-1.elb.amazonaws.com:80; }
如果某些-elb.us-east-1.elb.amazonaws.com映射到2个IP地址,nginx将如何在它们之间分配请求? 循环赛? (对于版本1.1.19,如果行为在某些时候改变了)。
另外,我在这里读到nginx在启动时cachingDNS结果。 如果你使用一个variables,它会刷新它们,但是只有你configuration了一个DNSparsing器。 因此,如果我没有configurationDNSparsing器,那么如果some-elb.us-east-1.elb.amazonaws.com中的某个IP发生更改,会发生什么情况? Nginx会继续发送stream量到它在启动时find的同一组IP吗?
请注意,nginx 1.1.19是3年前发布的开发版本。 作为一个好的系统pipe理员,这样的一切都不应该在你的业务中生活。 现在让我们专注于你的实际问题。
正如文件所解释的那样:
parsing为多个IP地址的域名一次定义多个服务器。
默认情况下,使用加权轮询平衡方法在服务器之间分配请求。
对于parsing器部分:是的,nginx会在启动时为server条目发出域名查找,然后caching任何结果,直到您在configuration中使用静态域名时重新启动。
您的链接指向有关反向代理的post,特别是proxy_pass指令中的域名处理。 这是一个不同的情况,您需要使用指令值中的variables来强制nginx更新其DNScaching:对这种特殊情况使用resolver指令是不够的。
现在,回到server指令。 使用resolver指令并添加resolve参数将允许监视DNSlogging更改并自动重新加载新的服务器列表 :
resolve monitors changes of the IP addresses that correspond to a domain name of the server, and automatically modifies the upstream configuration without the need of restarting nginx (1.5.12). In order for this parameter to work, the resolver directive must be specified in the http block.