1

当我尝试时,后面的定义似乎生效了。问题是,这样做会产生意想不到的后果吗?

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 的包含指令。如果此文件存在并为同一地图提供了替代定义,那么这就是使用的内容,而不是原始地图定义。

4

0 回答 0