nginx 常用功能之map映射(本文背景:获取url不用的查询参数返回对应的数据)
环境需求: 现有url访问地址 https://www.xxxxxx.com/page?account=xxxxx 获取
account 传参 不同的参数需要返回不同的文件内容
一、先上配置项
map $arg_account $json_file {
default /default_null.json;
user123 /user123.json;
user456 /user456.json;
}
二、解释:"$arg_accout" 不是内部变量,而是一个查询参数的变量,当客户端通过http/https 请求发送数据时,可以通过url中的查询参数传递数据
例如RUL中 https://example.com/page?account=user123 'account' 就是查询参数的名称 而user123 就是他的值。
nginx提供了一系列用于访问的查询参数的变量,上述 '$arg_' 开头的变量 用于获取查询参数的值。 对于上述例子,要获取account这个查询参数的值,使用的则就是 '$arg_account' 变量
三、nginx 中对于map 变量的解释
其中,$arg_accout 是要映射的变量,可以是任何有效的 Nginx 变量,如 args、json_file是映射后的新变量名(名字为自定义),可以自定义;key 是映射的键,可以是字符串、正则表达式或者变量;value 是映射的值,可以是字符串、变量或者表达式;default 是默认值,当没有匹配到任何键时使用。
map 指令的作用是将 $variable 的值根据键值对映射关系映射到 $new_variable 上,并且这个映射是在配置文件加载时进行的,不会在请求处理期间进行计算。一旦映射关系确定,映射的值会保存在 $new_variable 中,并可以在配置文件中的其他地方使用。
标签:map,account,变量,映射,nginx,json,arg From: https://blog.51cto.com/u_14236966/6949844