nginx中map使用方法

  • 场景: 匹配请求 url 的参数,如果参数是 debug 则设置 $foo = 1 ,默认设置 $foo = 0
map $args $foo {
    default 0;
    debug   1;
}

$args 是nginx内置变量,就是获取的请求 url 的参数。 如果 $args 匹配到 debug 那么 $foo 的值会被设为 1 ,如果 $args 一个都匹配不到 $foo 就是default 定义的值,在这里就是 0

  • 在 Nginx 配置文件中的作用段: http{} ,注意 map 不能写在 server{} 否则会报错

map 语法

map $var1 $var2 {...}

map 的 $var1 为源变量,通常可以是 nginx 的内置变量,$var2 是自定义变量。 $var2 的值取决于 $var1 在对应表达式的匹配情况。 如果一个都匹配不到则 $var2 就是 default 对应的值。

  • 一个正则表达式如果以 “~” 开头,表示这个正则表达式对大小写敏感。以 “~*”开头,表示这个正则表达式对大小写不敏感。
    map $http_user_agent $agent {
        default "";
        ~curl curl;
        ~*apachebench" ab;
    }  

你可能感兴趣的:(Nginx,nginx,https,运维)