ホームページ >バックエンド開発 >PHPチュートリアル >nginx 接続数を制限する (ngx_http_limit_conn_module) モジュール nginx concat モジュール echo nginx モジュール nginx upsync モジュール

nginx 接続数を制限する (ngx_http_limit_conn_module) モジュール nginx concat モジュール echo nginx モジュール nginx upsync モジュール

WBOY
WBOYオリジナル
2016-07-29 08:54:591120ブラウズ

ngx_http_limit_conn_module は、異常なトラフィック、過剰な負荷、または大規模なトラフィックの悪意のある攻撃アクセスがある一部のサーバーの同時接続数を制限します。このモジュールは、定義されたキーに基づいて、キー値ごとに接続数を制限できます。 used ヘッダー情報が完全に読み取られたリクエストを処理する接続がカウントされます。

このモジュールには、limit_conn_zone と limit_conn という 2 つの設定パラメータが用意されています。Limit_conn_zone は http{} セクションでのみ設定できますが、limit_conn は http{}、server{}、location{} セクションで設定できます。


1.limit_conn_zone

構文:limit_conn_zone $variable z
設定セクション: http

このディレクティブは、セッション状態の保存領域について説明します。現在の接続数はキーの状態に保存され、キーの値は特定の変数の null 以外の値にすることができます (null 値は考慮されません)。 $variable はキーを定義し、z はエリア名を定義し、その主な機能はその後に続くlimit_connです。 size は、各キーの共有メモリ空間のサイズを次のように定義します。

nginx rtmp module,nginx upload module,lua nginx module,fastdfs nginx module,nginx sticky module,nginx add module,nginx concat module,echo nginx module,nginx upsync modul

注:

クライアントの IP アドレスがキーとして使用されます。ここでは、remote_addr 変数ではなく、binary_remote_addr 変数が使用されていることに注意してください。
Remote_addr 変数の長さの範囲は 7 バイトから 15 バイトですが、ストレージ状態は 32 ビット プラットフォームでは 32 バイトまたは 64 バイト、64 ビット プラットフォームでは 64 バイトを占めます。
binary_remote_addr 変数の長さは 4 バイトに固定されており、ストレージ状態は 32 バイトまたは 32 ビット プラットフォームでは 64 バイト、64 ビット プラットフォームでは 64 バイトを占有します。
1M の共有スペースでは、32,000 の 32 ビット状態と 16,000 の 64 ビット状態を保存できます。
共有メモリ領域が使い果たされると、サーバーは後続のすべてのリクエストに対して 503 (Service Temporarily Unavailable) エラーを返します。


2.limit_conn

構文:limit_conn ゾーン名番号
設定セクション: http、server、location

このディレクティブは、指定されたキー値ごとに同時接続の最大数を指定します。この数を超えると、503 (サービス) エラーが返されます。例 (同じ IP は同時に 20 個の接続しか許可されません):

nginx rtmp module,nginx upload module,lua nginx module,fastdfs nginx module,nginx sticky module,nginx add module,nginx concat module,echo nginx module,nginx upsync modul


3. 設定と使用例

limit_conn_zone $binary_remote_addr z
主に変数、ゾーン名、共有メモリのサイズを定義するために使用されます

limit_conn showjoy_conn 20; 先ほど定義したshowjoy_connを設定し、同一IPの同時接続数を20に制限します

nginx rtmp module,nginx upload module,lua nginx module,fastdfs nginx module,nginx sticky module,nginx add module,nginx concat module,echo nginx module,nginx upsync modul


4. 使用上の注意点

トランザクションには2つの側面があります。 ngx_http_limit_conn_module モジュールは現在の同時実行性の問題を解決できますが、他の問題も引き起こします。たとえば、フロントエンドが LVS または逆生成を実行し、バックエンドがこのモジュール機能を有効にすると、大量の 503 エラーが発生するのではないでしょうか?この場合、フロントエンドでモジュールを有効にするか、ホワイトリストを設定できます。

モジュールアドレス: https://yunpan.cn/cqSKP6BrJ2AeT アクセスパスワード 4f50

').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); }); 上記は、nginx 接続数制限 (ngx_http_limit_conn_module) モジュールと nginx コンテンツを紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。