目的 リクエスト アクセス ボリュームを制御するための 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をインストールする方法
前回の CSS 回転灯と同じ内容の CSS アニメーションの応用です。これは単なる別のアプリケーショ...
<!doctypehtml> <html xmlns="http://...
MySQL 8.0.16 以降では、パスワードの有効期限ポリシーを設定できます。今日は、この小さな知...
この記事では、例を使用して、MySQL データベースの最適化のためのインデックス実装の原則と使用方法...
序文比較的複雑な大規模システムでは、複雑なロジックで処理する必要があるオブジェクトまたはデータ フロ...
コードをコピーコードは次のとおりです。 <!DOCTYPE html> <html...
目次一般的なアップロードコンポーネントの開発以下の機能を実装する必要がありますカスタムテンプレートサ...
最近の要件:グローバルロード、すべてのインターフェースはロード待機機能を表示するかどうかを手動で制御...
序文MySQL バージョン 3.23.44 以降では、InnoDB エンジン タイプのテーブルは外部...
Traceroute を使用すると、情報がコンピュータからインターネットの反対側のホストまでたどるパ...
公式サイトから mysql-5.7.19-winx64 をダウンロードします。これはシステムの 64...
現象の説明:プロジェクトでは、Springboot を使用して Web プロジェクトを開始します。起...
HTML ドキュメント内の要素は次々に配置され、ブロックレベル要素の前後に改行が追加されるだけで、合...
例示するこの記事は、2017 年 5 月 20 日に MySQL-5.7.18 を使用して作成されま...
Vmvare が仮想マシンのディスク サイズを設定した後、ディスク領域が不足していることがわかりまし...