基于已有变量,使用类似switch{case: default:}的语法创建新变量,为其他基于变量值实现功能的模块提供更多的可能性。ngx_http_map_module,默认编译进Nginx,通过--without-http_map_module禁用。
map
map string $variable { ... }
复制
- string:相当于switch值,可以是变量和字符串
- $variable:映射后新的变量名
- {...}中规则
- case规则:字符串严格匹配;使用hostnames指令可以对域名使用前后*的泛域名匹配;
~
和~*
表示正则匹配。三者的优先级依次递减,泛域名前优先于后。
- default规则:没有匹配到任何规则时,使用default的值;缺失default时,使用空值。
- 逻辑很多时建议使用include,使用volatile禁止变量值缓存。
#判断http_host变量值映射成变量name,hostnames开启泛域名匹配 map $http_host $name { hostnames; default 0; ~map\.tao\w+\.org.cn 1; #正则 *.taohui.org.cn 2; #前缀泛域名 map.taohui.tech 3; #字符串 map.taohui.* 4; #后缀泛域名 } #判断http_user_agent变量值映射成mobile变量 map $http_user_agent $mobile { default 0; "~Opera Mini" 1; }
复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
东方通TongHttpServer的安全特性解析
严少安
65次阅读
2025-03-17 23:15:48
Nginx实现TCP四层转发(实现代理MySQL)
IT那活儿
47次阅读
2025-03-05 11:09:26
Nginx 的基础原理篇
巴韭特锁螺丝
12次阅读
2025-03-16 19:37:40
通过nginx代理对SSL请求进行隧道化
IT那活儿
11次阅读
2025-03-11 10:12:46
nginx-ui:全新的 Nginx 在线管理平台
Linux技术宅
9次阅读
2025-03-08 07:03:18
Nginx 解决做反向代理时 静态资源图片、 js、css 访问不到
巴韭特锁螺丝
7次阅读
2025-03-14 00:02:06
nginx 服务器篇
巴韭特锁螺丝
7次阅读
2025-03-17 10:03:41
控制器- deployment01
喵呜
6次阅读
2025-03-31 13:45:40