モジュール ngx_stream_map_module
| 設定例 ディレクティブ map map_hash_bucket_size map_hash_max_size |
ngx_stream_map_moduleモジュール(1.11.2)は、他の変数の値によって値が変わる変数を作成します。
設定例
map $remote_addr $limit {
127.0.0.1 "";
default $binary_remote_addr;
}
limit_conn_zone $limit zone=addr:10m;
limit_conn addr 1;
ディレクティブ
| 構文 |
map |
|---|---|
| 既定値 | — |
| コンテキスト |
stream |
最初の引数で指定した1つ以上のソース変数の値によって値が変わる、新しい変数を作成します。
変数は使用される場合にのみ評価されるため、「map」変数が多数宣言されている場合でも、接続処理に余分なコストは追加されません。
mapブロック内のパラメーターは、ソースと結果の値の間のマッピングを指定します。
ソース値は、文字列または正規表現として指定します。
文字列では、大文字と小文字は区別されません。
正規表現は、大文字と小文字を区別するマッチングの場合「~」記号から始まるとするか、大文字と小文字を区別しないマッチングの場合「~*」記号から始める必要があります。正規表現には、結果の変数と一緒に他のディレクティブで使用できる、名前付きキャプチャと位置付きキャプチャを含めることができます。
ソース値が、以下で説明する特別なパラメーターのいずれかの名前に一致する場合、その前に「\」記号を付ける必要があります。
結果の値には、テキスト、変数、それらの組み合わせを含めることができます。
次の特殊パラメーターもサポートされています。
default値- ソース値が指定したいずれの変数とも一致しない場合に、結果の値を設定します。
defaultを指定しない場合、結果の値の既定値は空文字列になります。 hostnames- ソース値が、プレフィックスマスクまたはサフィックスマスク付きのホスト名であることを示します。
次の2つのレコードは*.example.com 1; example.* 1;
組み合わせることができます。example.com 1; *.example.com 1;
このパラメーターは、値のリストの前に指定する必要があります。.example.com 1;
includeファイル- 値を含むファイルを含めます。インクルードは複数可能です。
volatile- この変数がキャッシュ可能でないことを示します(1.11.7)。
ソース値が指定した複数の変数のいずれかと一致する場合、たとえばマスクと正規表現の両方が一致する場合、次の優先順位で最初に一致する変数が選択されます。
- マスクなしの文字列値
- プレフィックスマスク付きの最長の文字列値(例: 「
*.example.com」) - サフィックス付きの最長の文字列値(例: 「
mail.*」) - 最初の一致する正規表現(設定ファイルの出現順)
- 既定値
| 構文 |
map_hash_bucket_size |
|---|---|
| 既定値 |
map_hash_bucket_size 32|64|128; |
| コンテキスト |
stream |
map変数のハッシュテーブルの、バケットサイズを設定します。既定値は、プロセッサのキャッシュラインサイズによって決まります。ハッシュテーブルの設定の詳細については、別のドキュメントで説明しています。
| 構文 |
map_hash_max_size |
|---|---|
| 既定値 |
map_hash_max_size 2048; |
| コンテキスト |
stream |
map変数のハッシュテーブルの最大サイズを設定します。ハッシュテーブルの設定の詳細については、別のドキュメントで説明しています。