NginX prefered scheme
    Here is another usefull use-case for map.
  
Suppose, we have an unified vhost-setup (SSL/non-SSL) and wish handle some URLs encrypted, some other non-encryted and some we don't care about.
    First, let's map $uri to desired scheme:
  
map $uri $prefered_scheme {
    default         "http";
    ~^/admin        "https";
    ~^/robots\.txt  $scheme;    # whatever
}
  
      
        
  
  Then, we adjust our config as follows:
server {
    listen 80 default;
    listen 443 default ssl;
    # ...
    if ($prefered_scheme != $scheme) {
        return 301 $prefered_scheme://$host$request_uri;
    }
    # ....
}
  
      
        
  
  
    This way, the admin interface is always handled encrypted, any other
    content as non-encryted and robots.txt both.