### map
This module allows you to classify, or map a set of values into a different set of values and store the result in a variable.
Example:
~~~
map $http_host $name {
hostnames;
?
default 0;
?
example.com 1;
*.example.com 1;
test.com 2;
*.test.com 2;
.site.com 3;
}
~~~
One use for this would be to use a mapping in place of writing lots of server/location directives or redirects:
~~~
map $uri $new {
default http://www.domain.com/home/;
?
/aa http://aa.domain.com/;
/bb http://bb.domain.com/;
/john http://my.domain.com/users/john/;
}
?
server {
server_name www.domain.com;
rewrite ^ $new redirect;
}
~~~
### 指令
### map
**syntax:***map $var1 $var2 { ... }*
**default:***none*
**context:***http*
**map** defines the mapping table which will be used to set a variable. There are three special parameters:
- default — defines the value to be used where no match is found.
- hostnames — it allows for an easier matching of values like host names, names with a starting dot may match exact host names and host names ending with the value, for example:
~~~
*.example.com 1;
~~~
Instead of two entries
~~~
example.com 1;
*.example.com 1;
~~~
we can use only one
~~~
.example.com 1;
~~~
- include — include values from a file. Multiple includes may be used.
### map_hash_max_size
**syntax:***map_hash_max_size number*
**default:***map_hash_max_size 2048*
**context:***http*
The directive sets the maximum size of a hash table to hold the variable map. For more details see the descriptions of hash settings [Optimization section](# "NginxOptimizations") .
### map_hash_bucket_size
**syntax:***map_hash_bucket_size n*
**default:***map_hash_bucket_size 32/64/128*
**context:***http*
The directive sets the maximum size in a hash table to map variables. The default value depends on the size of the cache line processor. More see in the descriptions of hash settings in the [Optimization section](# "NginxOptimizations") .
### References
[Original Documentation](http://sysoev.ru/nginx/docs/http/ngx_http_map_module.html "http://sysoev.ru/nginx/docs/http/ngx_http_map_module.html")
- 主要文檔
- Nginx功能概述
- 為什么選擇Nginx
- Nginx安裝
- 運行和控制Nginx
- 配置符號參考
- 優化 Nginx
- 常見問題(FAQ)
- 調試 nginx
- 核心模塊
- Nginx主模塊
- Nginx事件模塊
- 基本模塊
- http核心模塊
- HttpIndex模塊
- HttpAccess模塊
- HttpAuthBasic模塊
- HttpAutoindex模塊
- Browser模塊
- Charset模塊
- HttpEmptyGif模塊
- HttpFcgi模塊
- Geo模塊
- HttpGzip模塊
- HttpHeaders模塊
- HttpIndex模塊
- HttpReferer模塊
- HttpLimit zone
- HttpLimitReqest模塊
- HttpLog模塊
- map
- Memcached
- HttpProxy模塊
- HttpRewrite模塊
- HttpSSI模塊
- HttpUserId
- 其他模塊
- Addition模塊
- EmbeddedPerl
- flv
- HttpGzipStatic
- RandomIndex
- HttpGeoIP
- HttpRealIp
- HttpSSL
- StubStatus模塊
- HttpSubstitution
- HttpDav模塊
- GooglePerftools
- HttpXSLT
- HttpSecureLink
- HttpImageFilter
- mail模塊
- MailCore
- MailAuth
- MailProxy
- MailSSL
- 安裝
- nginx在windows上的安裝
- nginx在freebsd上的安裝
- nginx在ubuntu上的安裝
- nginx在fedora上的安裝
- nginx php-fpm安裝配置
- 配置示例和方法
- 完整例子
- 完整例子2
- 虛擬主機
- 負載均衡
- nginx防盜鏈
- HWLoadbalancerCheckErrors