前回の記事では主にnginxにおける接続数を制限するngx_http_limit_conn_moduleモジュールの役割と使い方について書きました。 次にngx_http_limit_req_moduleモジュールの役割と使い方について書いていきます。
ngx_http_limit_req_module モジュールは、定義されたキー値を通じてリクエスト処理の頻度を制限できます。特に、単一の IP アドレスからのリクエストが処理される頻度を制限することができます。 制限方法はじょうごのようなもので、1 秒あたり一定数のリクエストを処理し、過剰なリクエストを延期します。
このモジュールには、limit_req_zone と limit_req という 2 つの設定パラメータが用意されています。Limit_req_zone は http{} セクションでのみ設定できますが、limit_req は http{}、server{}、location{} セクションで設定できます。
1.limit_req_zone
構文:limit_req_zone $variable z rate=rate
構成セクション: http
このコマンドは、キー値の状態パラメーターを保存するための共有メモリ制限ドメインを設定します。特に、リクエストを超えた現在数が保存されます。キーの値は指定された変数です (コントロールは評価されません)。例:
注:
$binary_remote_addr 変数を使用すると、各ステータス レコードのサイズを 64 バイトに削減できるため、1M のメモリで約 16,000 個の 64 バイト レコードを保存できます
制限されたドメインのストレージ スペースが使い果たされた場合、後続のすべてのリクエストに対して、サーバーは 503 (Service Temporarily Unavailable) エラーを返します
速度は、1 秒あたりに処理されるリクエストの数と 1 分あたりに処理されるリクエストの数に設定できるため、処理する必要がある場合は値を整数にする必要があります。リクエストが 1 秒あたり 1 件未満、リクエストの処理に 2 秒かかる場合は、30r/m を使用できます
2. 設定セクション: http、サーバー、場所
対応する共有メモリ制限ドメインと処理を許可するリクエストの最大数を設定します。リクエストの頻度が制限ドメインで設定された値を超えると、すべてのリクエストが定義された頻度で処理されるようにリクエストの処理が遅延します。頻度制限を超えるリクエストは、遅延リクエストの数が定義されたしきい値を超えるまで遅延され、この時点でリクエストは終了され、503 (サービス一時利用不可) エラーが返されます。このしきい値のデフォルト値は 0 です。例:
3. 構成の使用例
これは主に、以前に定義されたスペースを使用してリクエストの頻度制限を定義するために使用されます。これは、超過したリクエストを遅延させたくないことを意味します。
モジュールアドレス: 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 コンテンツを含む nginx 制限リクエスト番号 (ngx_http_limit_req_module) モジュールを紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。