モジュール ngx_stream_keyval_module
| 例の設定 ディレクティブ keyval keyval_zone |
ngx_stream_keyval_moduleモジュール(1.13.7)は、APIまたはnjsでも設定できる変数によって管理されるキーと値のペアから取得された値を持つ変数を作成します。
このモジュールは、商用サブスクリプションの一部として利用できます。
例の設定
http {
server {
...
location /api {
api write=on;
}
}
}
stream {
keyval_zone zone=one:32k state=/var/lib/nginx/state/one.keyval;
keyval $ssl_server_name $name zone=one;
server {
listen 12345 ssl;
proxy_pass $name;
ssl_certificate /usr/local/nginx/conf/cert.pem;
ssl_certificate_key /usr/local/nginx/conf/cert.key;
}
}
ディレクティブ
| 構文 |
keyval |
|---|---|
| デフォルト | — |
| コンテキスト |
stream |
keyによってキーバリューデータベースの中で検索することで、値が$variableなる新しいものを生成します。照合ルールはtypeパラメーターのkeyval_zoneディレクティブによって定義されます。データベースはzoneパラメーターによって指定された共有メモリー領域に格納されます。
| 構文 |
keyval_zone |
|---|---|
| デフォルト | — |
| コンテキスト |
stream |
キーバリューデータベースを格納した共有メモリー領域の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パラメーターを設定する必要があります。
同期が有効になっている場合、キーバリューペアの削除(単一のものであれすべてのものであれ)は、ターゲットのクラスタノードだけで実行されます。他のクラスタノードの同じキーバリューペアはtimeout時に削除されます。