Module 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 key $variable zone=name;
デフォルト: -
コンテキスト: http

値がキー-値データベース内のkeyによって検索される新しい$variableを作成します。マッチングルールはkeyval_zoneディレクティブのtypeパラメータを使って定義されます。データベースはzoneパラメータによって指定される共有メモリ領域に格納されます。

構文: keyval_zone zone=name:size [state=file] [timeout=time] [type=string|ip|prefix] [sync];
デフォルト: -
コンテキスト: http

キー-値データベースを保持する共有メモリ領域のnamesizeを設定します。キー-値ペアは APIによって管理されます。

任意のstate パラメータは、JSON形式でキー-値データベースの現在の状態を保持し、nginxの再起動を超えて永続化するfileを指定します。ファイルの内容を直接変更することは避けなければなりません。

例:

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)は、key-valueペアがゾーンから削除されるまでの時間を設定します。

オプションのtypeパラメータ(1.17.1)は、特定の型のキーのマッチングに最適化された追加のインデックスをアクティブにし、keyval $variableを評価する時のマッチングルールを定義します。

インデックスは同じ共有メモリゾーンに格納されます。従って追加のストレージを必要とします。

type=string
デフォルトでは、インデックスは無効です; 変数の検索は、レコードキーと検索キーの完全一致を使って実行されます
type=ip
検索キーは、IPv4またはIPv6アドレスまたはCIDR範囲のテキスト表現です; レコードキーと一致するには、検索キーはレコードキーで指定されたサブネットに所属しているか、IPアドレスに完全に一致する必要があります。
type=prefix
変数の検索は、レコードキーと検索キーの前方一致を使って実行されます (1.17.5); レコードキーと一致するには、レコードキーは検索キーのプリフィックスである必要があります

オプションのsync パラメータ (1.15.0) は共有されたメモリ領域のsynchronization を有効にします。同期には、timeoutパラメータを設定する必要があります。

同期が有効な場合、key-valueペア(1つあるいは全てに関係なく)の削除は、目的のクラスタノードでのみ実行されます。他のクラスタノード上の同じkey-valueペアはタイムアウト時に削除されます。

TOP
inserted by FC2 system