モジュール 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