当我试用它时,后来的定义似乎生效了。问题是,这样做会产生意想不到的后果吗?
http {
map $http_host $a {
hostnames;
default 1;
example.com 1;
*.example.com 2;
}
map $http_host $a {
hostnames;
default 3;
example.com 3;
*.example.com 4;
}
server {
server_name example.com *.example.com
location / {
echo $a
}
}
}
现在使用此配置,如果我尝试:
curl http://example.com
3
curl http://www.example.com
4
背景:我们使用它来为可选包含文件中的地图提供覆盖。因此,在定义映射之后,我们有一个* _override_map.conf的include指令。如果此文件存在并为同一个地图提供替代定义,那就是使用的内容而不是原始地图定义。