Is there any harm if the map directive in nginx is repeated for the same variable name?

jayesh_kapoor nginx-forum at nginx.us
Thu Apr 11 17:11:52 UTC 2013


When I try it out, the definition that comes later seems to take effect. The
question is, are there unintended consequences of doing this?

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
        }
    }
}
Now with this configuration if I try:

curl http://example.com
3
curl http://www.example.com
4
Background: We are using this to provide an override for a map in an
optional include file. So right after the map is defined, we have an include
directive for *_override_map.conf. If this file exists and provides an
alternate definition for the same map, then thats what gets used instead of
the original map definition.

Posted at Nginx Forum: http://forum.nginx.org/read.php?2,238301,238301#msg-238301



More information about the nginx mailing list