请先看参阅的Nginx Map指令文档后吧。这里的说明比较简略。
基本使用Demo
http {
map "beijing" $Name {
default "中国";
"beijing" "北京";
"shanghai1hao" "上海1号";
"shanghai2hao" "上海2号";
}
}
在需要的地方使用$Name进行引用即可,会根据map指令后的第一个字符串的值进行判断主体中的值。
正则使用
http {
map "hai" $Name {
default "中国";
"beijing" "北京";
~\w+hai\w* "上海1号";
# 可以使用捕获组进行匹配和使用
(\w+)hai "上海1号:$1";
}
}
## 问题1:nginx: [emerg] pcre_compile() failed: nothing to repeat in "https://(*).xxx.xxx" at "*).dataorigin.tech" in /etc/nginx/conf.d/xxx.conf:xx
这个意思是说,量词前面的(括号,匹配多个括号无意义,所以这里报错了。更改为类似于\w*这种正则匹配就行。
Nginx使用的perl正则,参阅里有直达文档。
# 注意,在通过网页测试静态资源的时候,一定注意勾选禁用缓存,不然会导致浏览器缓存后,不会请求nginx的。
# 参阅:
[Nginx使用的正则表达式文档](https://perldoc.perl.org/perlre)
[Nignx map指令](http://nginx.org/en/docs/http/ngx_http_map_module.html)
标签:map,常见问题,http,Nginx,module,nginx,ngx
From: https://www.cnblogs.com/XingXiaoMeng/p/16916242.html