電子商取引プラットフォームをマーケティングする場合、大規模なトラフィックの問題が頻繁に発生します。トラフィックの迂回処理に加えて、ユーザーのブラック/ホワイト リストと評判分析を実行し、それに基づいて対応するトラフィック傍受とトラフィック制限を実行する必要がある場合があります。ユーザーの IP レピュテーションの重み。
Nginx 独自のリクエスト制限モジュール ngx_http_limit_req_module とトラフィック制限モジュール ngx_stream_limit_conn_module は、トークン バケット アルゴリズムに基づいており、トークン レートを簡単に制御し、現在の制限をカスタマイズできます。 、基本的な電流制限制御を実現します。
#アルゴリズムのアイデアは次のとおりです:
トークンは固定レートで生成され、トークン バケットにキャッシュされます。トークン バケットがいっぱいになると、余分なトークンは破棄されます。#リクエストは、処理されるトークンを同じ割合で消費する必要があります。十分なトークンがない場合は、リクエストはキャッシュで処理されます。リーキーバケットアルゴリズム:
アルゴリズムのアイデアは次のとおりです:
水 (リクエスト)をバケツに上から注ぎ、バケツの底から流れ出す(処理済み); 流出し遅れた水はバケツ(バッファ)に貯められ、一定時間で流出します。固定レート; バケツがいっぱいになると、水はオーバーフローします(捨てられます)。 このアルゴリズムの核心は、リクエストをキャッシュし、均一な速度で処理し、冗長なリクエストを直接破棄することです。Nginx の正式バージョンには、IP 接続と同時実行を制限するための 2 つのモジュールがあります。
limit_req_zone は、単位時間あたりのリクエスト数、つまりレートを制限するために使用されます。限界に達したリーキーバケットアルゴリズム「リーキーバケット」を採用。 limit_req_conn は、同時に接続できる数を制限する、つまり同時実行数の制限に使用されます。 Nginx 関連の技術記事の詳細については、Nginx の使用法チュートリアル 列にアクセスして学習してください。
以上がnginx フローを制限する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。