目的 リクエスト アクセス ボリュームを制御するための Nginx ngx_http_limit_conn_module および ngx_http_limit_req_module モジュールを理解します。 Nginx のモジュール性 nginx の内部構造は、コア モジュールと一連の機能モジュールで構成されています。モジュール型アーキテクチャにより、各モジュールの機能が比較的シンプルになり、高い凝集性が実現され、Nginx の機能拡張も容易になります。 Web リクエストの場合、Nginx の有効なすべてのモジュールが、ゲームのレベルと同様にチェーンを形成します。各モジュールは、圧縮用の ngx_http_gzip_module モジュール、認証用の ngx_http_auth_basic_module モジュール、プロキシ用の ngx_http_proxy_module モジュールなど、特定の機能を担当します。サーバーへの接続要求は、各 Nginx モジュールによって順番に処理されます。これらのモジュールによって処理された後にのみ、要求は実際にバックグラウンド プログラム コードに渡され、処理されます。 Nginx 同時アクセス制御 Web サーバーの場合、Web クローラーや悪意のある大容量トラフィック攻撃に遭遇すると、サーバーのメモリと CPU がいっぱいになり、帯域幅もいっぱいになります。そのため、成熟したサーバー プロキシ ソフトウェアとしては、これらの状況を制御できることが必要です。 Nginx で同時実行を制御する方法は 2 つあります。1 つは IP またはその他のパラメータを使用して同時実行を制御する方法、もう 1 つは単位時間あたりに処理されるリクエストの合計数を制御する方法です。つまり、同時実行性と並列処理の制御です。これら 2 つの機能は、それぞれ ngx_http_limit_conn_module モジュールと ngx_http_limit_req_module モジュールによって実装されます。 ngx_http_limit_conn_module モジュール 例示する このモジュールは主に同時リクエストの数を制御するために使用されます。 パラメータ設定 制限接続ゾーン
制限接続ログレベル
制限接続
制限接続ステータス
制限レート
制限レート後
簡単な設定例 limit_conn_zone $binary_remote_addr ゾーン=addr:10m; サーバー{ 聞く 80; サーバー名 www.domain.com; ルート /path/; インデックス index.html index.htm; 場所 /ip { limit_conn_status 503; # 制限を超えた後に返されるステータス コード。 limit_conn_log_level warn; # ログレベル limit_rate 50; # 帯域幅制限 limit_conn addr 1; # 同時アクセスの制御} # 同時アクセス制限を超えると、503 エラー ページ error_page 503 /503.html が返されます。 } ngx_http_limit_req_module モジュール 例示する このモジュールは主に単位時間あたりのリクエスト数を制御します。フィルタリングには「リーキー バケット」アルゴリズムを使用します。制限レートを設定した後、単位時間あたりのリクエスト数がレートを超えると、モジュールはバースト値を検出します。値が 0 の場合、リクエストはエラーを返すか、delay|nodelay 構成に従って待機します。バーストが 0 より大きい場合、リクエスト数がレートより大きくバーストより小さい場合、リクエストは処理待ちキューに入ります。 パラメータ設定 制限要件ゾーン
制限要件
limit_req_log_level および limit_req_status 構成パラメータは、ngx_http_limit_conn_module モジュールと一致しています。 簡単な設定例 limit_req_zone $binary_remote_addr ゾーン=req:10m レート=2r/m; サーバー{ 聞く 80; サーバー名 www.domain.com; ルート /path/; インデックス index.html index.htm; 場所 / 制限 { limit_req ゾーン=req バースト=3 ノードレイ; } # 同時アクセス制限を超えると、503 エラー ページ error_page 503 /503.html が返されます。 } 知らせ どちらのアクセス制御もメモリ空間の確保が必要です。メモリ空間がある以上、当然メモリが不足する状況が発生します。このとき、新しいリクエストはエラーで返されます。そのため、アクセス制限を有効にする場合は、このような状況が発生しないように監視する必要があります。 まとめ Nginx のモジュール アーキテクチャを簡単に紹介し、ngx_http_limit_conn_module モジュールと ngx_http_limit_req_module モジュールの機能と構成パラメータを理解することに重点を置き、Nginx のリクエストの同時実行制御を実装します。何か問題があればお知らせください 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Vue+element+oss はフロントエンドのフラグメントアップロードとブレークポイント再開を実現します
>>: Centos6にMysql5.7をインストールする方法
フォームのフロントエンド レイアウトでは、テキスト ボックスのプロンプト テキストを両端に揃える必要...
1. まずSELECT文を実行して、すべての切り捨て文を生成します。ステートメント形式: selec...
wget や curl ツールを使用して、Linux サーバーで大規模なネットワーク ファイルを直接...
目次refとは何かrefの使い方DOM要素に配置するクラスコンポーネントに配置する関数コンポーネント...
目次1. 基本的なSELECT文1. 指定されたフィールドをクエリする3. エイリアスを設定する4....
多くの友人がフォーラムやメッセージエリアで、どのような状況で MySQL をシャーディングする必要が...
序文Docker と VS Code を使用すると、ローカル開発環境全体を最適化し、プロジェクトの進...
この記事では、参考までにMySQL 5.7.13 winx64のインストールと設定方法のグラフィック...
目次1. データベースのマスター/スレーブ分類: 2. MySQL マスタースレーブの紹介3. マス...
以前作成されたデータベースの ogg プロセスは、発見されるまでの約半月間ダウンしていました。起動で...
SecureCRT が文字化けした文字を表示する状況を見てみましょう。例えば: ではリセットしてみま...
目次1. 公式の足場を使って構築する2. プロジェクトディレクトリ分析3. TypeScript の...
目次インデックスタイプインデックス構造非クラスター化インデックスクエリインデックスカバー要約するイン...
関連記事: Web コンテンツ ページを作成するための 9 つの実用的なヒント<br />...