web-dev-qa-db-ja.com

nginxで1分あたりのリクエストを制限する

IPアドレスに基づいて、単一のクライアントIPアドレスがサーバーに対して実行できる要求の数に制限を設定したいと思います。 Nginxにはlimit_req_zoneディレクティブがあります。ただし、このディレクティブは実際にはaverageヒットを制限します。制限をrate=6r/mに設定すると、実際には10秒ごとに1回のヒットしか許可されません。

代わりに、必要なのは1分あたりの実際の制限です。例えば。クライアントは、3つまたは4つのリクエストを次々に、または同時に実行できる必要がありますが、 1分あたり10。これを行う方法はありますか?

4
Jeroen

ああ、これは limit_req wiki の下部に記載されているnodelay設定で実行できると思います。

バースト内で過剰な要求を遅らせる必要がない場合は、オプションnodelayを使用する必要があります:

limit_req   zone=one  burst=5  nodelay;
3
Jeroen