在变量中设置相同域名不适用于nginx中的多个位置块
每当有新请求出现时,我想解析DNS, 我试图通过在变量中设置DNS,在Nginx中动态解析DNS。对于下面的示例,它工作正常在变量中设置相同域名不适用于nginx中的多个位置块,nginx,nginx-location,nginx-reverse-proxy,nginx-config,Nginx,Nginx Location,Nginx Reverse Proxy,Nginx Config,每当有新请求出现时,我想解析DNS, 我试图通过在变量中设置DNS,在Nginx中动态解析DNS。对于下面的示例,它工作正常 server { location /mypath { resolver 10.0.3.2 10.0.2.2 ipv6=off valid=10s; resolver_timeout 30s; set $backend_servers backends.example.com; proxy_pass
server {
location /mypath {
resolver 10.0.3.2 10.0.2.2 ipv6=off valid=10s;
resolver_timeout 30s;
set $backend_servers backends.example.com;
proxy_pass http://$backend_servers/mypath;
}
}
但是,当变量中有多个具有相同DNS名称的位置块时,它无法解析DNS
server {
location /mypath {
resolver 10.0.3.2 10.0.2.2 ipv6=off valid=10s;
resolver_timeout 30s;
set $backend_servers backends.example.com;
proxy_pass http://$backend_servers/mypath;
}
location /mysecondpath {
resolver 10.0.3.2 10.0.2.2 ipv6=off valid=10s;
resolver_timeout 30s;
set $backend_servers backends.example.com;
proxy_pass http://$backend_servers/mysecondpath;
}
}
如果您观察到$backend\u服务器在两个位置块中都使用。如果我使用其中任何一个,只有Nginx代理可以完美地工作。当我同时使用两者时,返回502
我做错了什么?
提前谢谢 DNS解析器不使用代理URL的两个原因
服务器{
位置/mypath/(*){
解析程序10.0.0.2 ipv6=off有效=10s;
解析器超时30秒;
设置$backend_servers backends.example.com;
代理传递http://$backend\u servers/mypath/$1$is\u args$args;
}
位置/mysecondpath/(*){
解析程序10.0.0.2 ipv6=off有效=10s;
解析器超时30秒;
设置$backend_servers backends.example.com;
代理传递http://$backend\u servers/mysecondpath/;
}
}
您是对的,我刚刚确认,我的VPC的CIDR块是10.0.0.0/16,但不幸的是无法在10.0.0.2之前解析。您是在哪个环境下工作,aws还是本地?它不会在本地解析DNS,因此无法在本地解析DNS。