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