ngx_stream_limit_conn_module モジュール

設定例
ディレクティブ
     limit_conn
     limit_conn_log_level
     limit_conn_zone

ngx_stream_limit_conn_moduleモジュール (1.9.3)は定義されたキーごとの接続の数、特に一つのIPアドレスからの接続数を制限します。

設定例

stream {
    limit_conn_zone $binary_remote_addr zone=addr:10m;

    ...

    server {

        ...

        limit_conn           addr 1;
        limit_conn_log_level error;
    }
}

ディレクティブ

構文: limit_conn zone number;
デフォルト: -
コンテキスト: stream, server

共有メモリ領域と、指定されたキーに許可された接続の最大数を設定します。この制限を越えると、サーバは接続を閉じるでしょう。例えば、次のディレクティブは、

limit_conn_zone $binary_remote_addr zone=addr:10m;

server {
    ...
    limit_conn addr 1;
}

は、一度にIPアドレスごとに一つの接続を許可します。

幾つかのlimit_conn ディレクティブが指定された場合は、全ての設定された制限が適用されるでしょう。

現在のレベルにlimit_connディレクティブが無い場合に限り、これらのディレクティブは上のレベルから引き継がれます。

構文: limit_conn_log_level info | notice | warn | error;
デフォルト:
limit_conn_log_level error;
コンテキスト: stream, server

サーバが接続数を制限したことを記録するのが望ましいレベルを設定します。

構文: limit_conn_zone key zone=name:size;
デフォルト: -
コンテキスト: stream

様々なキーに対してステータスを保持する共有メモリ領域のパラメータを設定します。特に、ステータスには現在の接続数が含まれます。key にはテキスト、変数、それらの組み合わせを含めることができます (1.11.2)。空のキーの値の接続は考慮されません。利用例:

limit_conn_zone $binary_remote_addr zone=addr:10m;

ここで、キーは$binary_remote_addr 変数によって設定されるクライアントのIPアドレスです。$binary_remote_addr のサイズはIPv4アドレスの場合は4バイトで、IPv6アドレスの場合は16バイトです。保持された状況は32-bitプラットフォーム上では常に32バイトを占有し、64-bitプラットフォーム上では常に64バイトを占有します。一メガバイトの領域は約32,000個の32-byteの状況、あるいは約16,000個の64-byteの状況を保持することができます。領域のストレージが使い果たされると、サーバは接続を閉じるでしょう。

TOP
inserted by FC2 system