目的 リクエスト アクセス ボリュームを制御するための 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. 父から息子へ2. 息子から父へ3. 親子関係のないコンポーネントの値の転送4. ヴュークス...
透明を含む5つの肌の色を変更するには50行のコードが必要です最初にコードをお渡ししますので、ご自身で...
目次序文🌟 1. APIの紹介2. 複数のデータソースの監視3. リスニングアレイ4. 監視対象5....
目次1. クエリキャッシュの実装プロセス2. クエリキャッシュを構成する3. クエリキャッシュを有効...
この記事では、プログレスバー効果を実現するためのJavaScriptの具体的なコードを参考までに紹介...
1. まず、node、express、express-generator をインストールします (4...
目次導入ミラーリポジトリログイン引く押す検索ローカル画像管理画像rmiタグ建てる歴史保存負荷輸入コン...
目次1. MySQLレプリケーションプロセス2. MySQLの遅延問題の分析3. プロモーション期間...
以前、上司からログイン後にチェックマークを表示できるプログラムを作るように言われたのですが、Baid...
解決策は次のとおりです。 1. コンテナを強制削除する docker rm -f ジェンキンス2. ...
背景: 最近、資産報告関連の機能に取り組んでおり、中国語入力をサポートする必要があります。通常のショ...
参考までに、JavaScriptを使用してドロップダウンメニューを実装します。具体的な内容は次のとお...
ステップ: 1. 仮想マシンディレクトリに新しいdocker-compose.ymlファイルを作成し...
目次マインドマップとは何ですか? F6で描く方法アリペイ微信要約するマインドマップとは何ですか?マイ...
序文この記事は主に、MYSQL でランキングを実現し、指定ユーザーランキング関数 (並列ランキング関...