ngx_stream_limit_conn_module モジュール
設定例 ディレクティブ limit_conn limit_conn_dry_run 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 |
---|---|
デフォルト: | - |
コンテキスト: |
stream , server |
共有メモリ領域と、指定されたキーに許可された接続の最大数を設定します。この制限を越えると、サーバは接続を閉じるでしょう。例えば、次のディレクティブは、
limit_conn_zone $binary_remote_addr zone=addr:10m; server { ... limit_conn addr 1; }
は、一度にIPアドレスごとに一つの接続を許可します。
幾つかのlimit_conn
ディレクティブが指定された場合は、全ての設定された制限が適用されるでしょう。
これらのディレクティブは、現在のレベルにlimit_conn
ディレクティブが無い時にのみ、上の設定レベルを継承します。
構文: |
limit_conn_dry_run |
---|---|
デフォルト: |
limit_conn_dry_run off; |
コンテキスト: |
stream , server |
このディレクティブはバージョン1.17.6で導入されました。
ドライランモードを有効にします。このモードでは、接続数は制限されませんが、共有メモリゾーンでは、通常通りに過剰な接続数が考慮されます。
構文: |
limit_conn_log_level
|
---|---|
デフォルト: |
limit_conn_log_level error; |
コンテキスト: |
stream , server |
サーバが接続数を制限したことを記録するのが望ましいレベルを設定します。
構文: |
limit_conn_zone
|
---|---|
デフォルト: | - |
コンテキスト: |
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の状況を保持することができます。領域のストレージが使い果たされると、サーバは接続を閉じるでしょう。
さらに、商用サブスクリプションの一部として、1.17.7からAPIを使ってそのような共有メモリゾーンの状態情報を取得または再設定することができます。
埋め込み変数
$limit_conn_status
-
接続数を制限した結果を保持します (1.17.6):
PASSED
、REJECTED
、REJECTED_DRY_RUN