模块 ngx_http_map_module
示例Directives 映射 map_hash_bucket_size map_hash_max_size |
该模块创建变量
其值取决于其他变量的值。ngx_http_map_module
示例配置
map $http_host $name { hostnames; default 0; example.com 1; *.example.com 1; example.org 2; *.example.org 2; .example.net 3; wap.* 4; } map $http_user_agent $mobile { default 0; "~Opera Mini" 1; }
Directives
语法: |
map
|
---|---|
默认值: | — |
上下文: |
http |
创建一个新变量,其值 取决于一个或多个源变量的值 在第一个参数中指定。
在 0.9.0 版本之前,只有一个变量可以是 在第一个参数中指定。
由于变量仅在使用时被计算,因此仅声明
甚至大量 “” 变量
不会给请求处理增加任何额外费用。map
块内的参数指定映射
在 source 和 resulting 值之间。map
源值指定为字符串或正则表达式 (0.9.6)。
字符串匹配,忽略大小写。
正则表达式应从 “” 开始
符号进行区分大小写的匹配,或者从 “”
symbols (1.0.4) 进行不区分大小写的匹配。
正则表达式可以包含命名捕获和位置捕获
稍后可以在其他Directives中与
结果变量。~
~*
如果源值与特殊参数的名称之一匹配
如下所述,它应以 “” 符号为前缀。\
结果值可以包含文本、 变量 (0.9.0) 和它们的组合 (1.11.0)。
还支持以下特殊参数:
default
value
- 如果源值与 none 匹配,则设置结果值
的指定变体。
如果未指定,则默认为
结果值将为空字符串。
default
hostnames
- 表示源值可以是带有前缀或后缀掩码的主机名:
以下两条记录*.example.com 1; example.* 1;
可以组合使用:example.com 1; *.example.com 1;
此参数应在值列表之前指定。.example.com 1;
include
file
- 包括一个带有 values 的文件。 可以包含多个内容。
volatile
- 表示该变量不可缓存 (1.11.7)。
如果 source 值与多个指定的变体匹配,则 例如,掩码和正则表达式都匹配,第一个匹配项 variant 将按以下优先级顺序选择:
- string 值(没有掩码)
- 带有前缀掩码的最长字符串值,
例如 “”
*.example.com
- 带有后缀掩码的 longest 字符串值,
例如 “”
mail.*
- 第一个匹配的正则表达式 (按在配置文件中出现的顺序)
- 默认值
语法: |
map_hash_bucket_size |
---|---|
默认值: |
map_hash_bucket_size 32|64|128; |
上下文: |
http |
设置映射变量哈希表的存储桶大小。 默认值取决于处理器的高速缓存行大小。 设置哈希表的详细信息在单独的文档中提供。
语法: |
map_hash_max_size |
---|---|
默认值: |
map_hash_max_size 2048; |
上下文: |
http |