使用解析器每个位置,我在服务器上找到了这个配置,但我的猜测是它没有“重新解析”,因为它proxy_pass
也没有使用变量
location /foo {
proxy_pass http://foo_backends;
resolver 10.0.0.2 valid=300s;
resolver_timeout 10s;
}
location /bar {
proxy_pass http://bar_backends;
resolver 10.0.0.2 valid=300s;
resolver_timeout 10s;
}
来自文档:
当您使用变量在 proxy_pass 指令中指定域名时,NGINX 会在其 TTL 过期时重新解析该域名。
因此,如果我是对的,那么以前的配置可以像这样重写:
resolver 10.0.0.2 valid=300s;
resolver_timeout 10s;
location /foo {
set $foo_backend_servers foo_backends.example.com;
proxy_pass http://$foo_backend_servers;
}
location /bar {
set $bar_backend_servers bar_backends.example.com;
proxy_pass http://$bar_backend_servers;
}
这是正确的吗?或者在使用每个位置时有什么技巧?是不是通过使用每个位置的解析器,就不需要创建变量并将其传递给proxy_pass
?