モジュール 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
で削除されます。