nginx (http://nginx.org/) を使用して、1 分あたりのリクエスト数を制限しようとしました。たとえば、私の設定は次のとおりです。
server{
limit_req_zone $binary_remote_addr zone=pw:5m rate=20r/m;
}
location{
limit_req zone=pw nodelay;
}
私が Nginx で見つけたのは、1 分間に 1 つのリクエストを試行しても、その 1 分間に何度も戻ることができるということです。もちろん、ページをすばやく更新すると、「503 Service Temporarily Unavailable」というリターン コードである制限ページ メッセージが表示されます。
リクエストを 1 分間に正確に 20 リクエストに制限するために適用できる設定の種類を知りたいです。Nginxがこれを提供するため、フラッド保護だけを探しているわけではありません。たとえば、ページが常に更新される場合、ユーザーを制限し、しばらくしてからユーザーを元に戻すことができます(ノードレイ設定を適用しない限り)。
HAProxy 以外の Nginx に代わるものがある場合 (非常に遅いため)。また、Nginx でのセットアップは、実際のサイトへのリバース プロキシとして機能しています。