モジュール 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)は定義されたキーあたりの接続数を制限するために使用されます。特に、1つの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アドレスあたり1つの接続だけを許可します。
複数の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ビットプラットフォームでは32または64バイト、64ビットプラットフォームでは64バイトになります。1メガバイトのゾーンには、約32,000の32バイト状態、または約16,000の64バイト状態を保持できます。ゾーンストレージを使い果たすと、サーバーは接続を閉じます。
さらに、商用サブスクリプションの一部として、そのような共有メモリゾーンごとのステータス情報は取得またリセットを、1.17.7以降のAPIで行うことができます。
埋め込み変数
$limit_conn_status
- 接続数の制限の結果を保持します(1.17.6):
PASSED
、REJECTED
、またはREJECTED_DRY_RUN