モジュール ngx_http_map_module
構成例 ディレクティブ map 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; }
ディレクティブ
構文 |
map |
---|---|
デフォルト | — |
コンテキスト |
http |
最初の引数に指定された 1 つ以上のソース変数の値に依存した値を持つ新しい変数を作成します。
バージョン 0.9.0 より前は、最初の引数で変数を 1 つだけ指定できました。
変数は使用時にのみ評価されるので、多数の「map
」変数を宣言しても、リクエストの処理に追加コストは発生しません。
map
ブロック内のパラメータは、ソース値と結果値のマッピングを指定します。
ソース値は、文字列または正規表現 (0.9.6) として指定されます。
文字列は、大文字小文字を無視して照合されます。
正規表現は大文字小文字を区別する照合の場合は「~
」記号から、大文字小文字を区別しない照合の場合は「~*
」記号 (1.0.4) から開始する必要があります。正規表現には名前付きキャプチャと位置キャプチャを含めることができ、結果変数と共に他のディレクティブで使用できます。
ソース値が下記の特殊パラメータのいずれかの名前と一致する場合は、「\
」記号をプレフィックスとして付ける必要があります。
結果値には、テキスト、変数 (0.9.0)、それらの組み合わせ (1.11.0) を含めることができます。
次の特殊パラメータもサポートされています
default
value
- ソース値が指定されたいずれのバリアントとも一致しない場合、結果値を設定します。
default
が指定されていない場合、デフォルトの結果値は空の文字列になります。 hostnames
- ソース値は、プレフィックスまたはサフィックスマスクを使用したホスト名であることを示します
次の 2 つのレコード*.example.com 1; example.* 1;
を組み合わせることができます。example.com 1; *.example.com 1;
このパラメータは値のリストの前に指定する必要があります。.example.com 1;
include
file
- 値を含むファイルをインクルードします。インクルードは複数指定できます。
volatile
- 変数がキャッシュできないことを示します (1.11.7)。
ソース値が指定されたバリアントの複数 (例: マスクと正規表現の両方) と一致する場合、次の優先順位で最初のマッチしたバリアントが選択されます。
- マスクのない文字列値
- プレフィックスマスクを使用した最長の文字列値 (例: 「
*.example.com
」) - サフィックスマスクを使用した最長の文字列値 (例: 「
mail.*
」) - 最初のマッチした正規表現 (設定ファイルの出現順)
- デフォルト値
構文 |
map_hash_bucket_size |
---|---|
デフォルト |
map_hash_bucket_size 32|64|128; |
コンテキスト |
http |
map
変数ハッシュテーブルのバケットサイズを設定します。デフォルト値はプロセッサのキャッシュラインサイズによって異なります。ハッシュテーブルの設定に関する詳細は、別の ドキュメント に記載されています。
構文 |
map_hash_max_size |
---|---|
デフォルト |
map_hash_max_size 2048; |
コンテキスト |
http |
map
変数ハッシュテーブルの最大サイズ
を設定します。ハッシュテーブルの設定に関する詳細は、別の ドキュメント に記載されています。