モジュール ngx_http_keyval_module
| 構成の例 指令 keyval keyval_zone |
ngx_http_keyval_moduleモジュール(1.13.3)はAPIによって管理されるキーバリューペアやnjsでも設定可能な変数(1.15.10)から取得した値を持つ変数を作成します。
このモジュールは商用サブスクリプションの一部として利用できます。
構成の例
http {
keyval_zone zone=one:32k state=/var/lib/nginx/state/one.keyval;
keyval $arg_text $text zone=one;
...
server {
...
location / {
return 200 $text;
}
location /api {
api write=on;
}
}
}
指令
| 構文 |
keyval |
|---|---|
| 既定 | — |
| コンテキスト |
http |
$variableを作成します。その値はキーバリューデータベースのkeyによって検索されます。照合ルールはtypeパラメータのkeyval_zone指令によって定義されます。データベースはzoneパラメータで指定された共有メモリに格納されます。
| 構文 |
keyval_zone |
|---|---|
| 既定 | — |
| コンテキスト |
http |
キーバリューデータベースを保持する共有メモリのnameとsizeを設定します。キーバリューペアはAPIによって管理されます。
オプションのstateパラメータはキーバリューデータベースの現在の状態をJSON形式で保持しているfileを指定し、nginxの再起動をまたがっても永続的にします。ファイルの内容を直接変更することは避けるべきです。
例
keyval_zone zone=one:32k state=/var/lib/nginx/state/one.keyval; # path for Linux keyval_zone zone=one:32k state=/var/db/nginx/state/one.keyval; # path for FreeBSD
オプションのtimeoutパラメータ(1.15.0)はキーバリューペアがゾーンから削除される時間を設定します。
オプションのtypeパラメータ(1.17.1)は特定のタイプのキーに一致するように最適化された追加索引を有効にし、keyval $variableを評価する際の照合ルールを定義します。
インデックスは同じ共有メモリゾーンに格納されるので、追加のストレージが必要です。
type=string- 既定、インデックスは有効になっていません。変数の検索はレコードキーと検索キーの完全一致を使用して実行されます。
type=ip- 検索キーはIPv4またはIPv6アドレスやCIDRレンジのテキスト表現です。レコードキーに一致するためには検索キーはレコードキーによって指定されたサブネットに属すか、IPアドレスと完全に一致しなければなりません。
type=prefix- 変数の検索はレコードキーと検索キーのプレフィックス一致を使用して実行されます(1.17.5)。レコードキーに一致するためには、レコードキーは検索キーのプレフィックスでなければなりません。
オプションのsyncパラメータ(1.15.0)は共有メモリの同期を有効にします。同期にはtimeoutパラメータを設定する必要があります。
同期が有効であれば、キーバリューペアの削除(関係なく1つでもすべてでも)はターゲットクラスタノードに対してのみ実行されます。他のクラスタノードの同じキーバリューペアはtimeoutで削除されます。