Nginxの速度制限設定を実装する方法

王林
リリース: 2023-11-08 21:22:55
オリジナル
1496 人が閲覧しました

Nginxの速度制限設定を実装する方法

Nginx 速度制限構成を実装するには、特定のコード例が必要です

Nginx は、高性能 Web サーバーおよびリバース プロキシ サーバーとして、実際のアプリケーションでよく使用されます。システムの安定性と公平性を確保するために、特定のインターフェイスまたはリソースの速度を制御するために必要です。ここでは、Nginxの設定ファイルによる速度制限制御の実装方法と、具体的なコード例を添付して紹介します。

  1. 構成ファイルでの速度制限領域の定義
    まず、速度制限関連情報を保存および管理するために、Nginx 構成ファイルで速度制限領域を定義する必要があります。 Nginx 構成ファイル (通常は nginx.conf または sites-available/default) を開き、http モジュールに次の構成を追加します。
http {
  ...
  limit_req_zone $binary_remote_addr zone=rate_limit:10m rate=10r/s;
  ...
}
ログイン後にコピー

上記の構成では、limit_req_zone は次のとおりです。速度制限ゾーンを定義するには、$binary_remote_addr はクライアント IP アドレスに基づく速度制限を意味します。zone パラメーターは速度制限ゾーンの名前を rate_limit、10m# として指定します。 # #速度制限領域のメモリ サイズが 10MB であることを示し、rate パラメーターは許可されるリクエストの最大数が 1 秒あたり 10 であることを指定します。

    構成ファイルで速度制限を適用する
  1. 次に、構成ファイルで特定のインターフェイスまたはリソースの速度制限を制御する必要があります。構成ファイルを開き、サーバー ブロックに次の構成を追加します。
  2. server {
      ...
      location /api/limited {
        limit_req zone=rate_limit burst=20 nodelay;
        ...
      }
      ...
    }
    ログイン後にコピー
上記の構成では、

location ディレクティブは、レート制限制御を URL に適用する必要があることを示しています。パスは /api/limited です。 limit_req コマンドは、速度制限ルールを設定するために使用されます。zone パラメーターは、以前に定義された速度制限ゾーン rate_limit の使用を指定し、burst パラメーターは、リクエストの最大数である nolay パラメータは、レート制限を超えたリクエストに対して直ちにエラーを返すかどうかを示します。

    Nginx 構成をリロードしてテスト
  1. 上記の構成が完了したら、構成ファイルを保存し、Nginx 構成をリロードして設定を有効にします。次のコマンドを使用して Nginx 構成をリロードできます:
  2. sudo service nginx reload
    ログイン後にコピー
その後、ツールを使用してテスト、同時リクエストのシミュレーション、および速度制限の影響を検証できます。テストには ab (ApacheBench) や wrk などのツールを使用できます。例:

ab -n 1000 -c 100 http://your-domain.com/api/limited
ログイン後にコピー
上記のコマンドは、1000 個の同時リクエスト (毎回 100 個の同時リクエスト) を送信することを意味し、アクセス URL は http://your です。 -domain.com /api/limited。返されたテスト結果を表示することで、速度制限設定が正しいことを確認できます。

上記は、Nginx を介して速度制限設定を実装する手順です。速度制限エリアを定義し、速度制限ルールを適用することで、インターフェイスまたはリソースのアクセス速度を効果的に制御し、インターフェイスやリソースの安定性と公平性を維持できます。システム。上記の内容がお役に立てば幸いです。

以上がNginxの速度制限設定を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート