回答:
これは、NginxでLimitReqModuleを使用して実行できます。ただし、これがリバースプロキシ用の場合は、HAProxyでサポートされている新しいレート制限を試してください。
nginxのレート制限は、希望する正確なレートを取得するために少し混乱することがわかりました。
しかし、基本的に次のようなものがあります。
limit_req_zone $binary_remote_addr zone=default:10m rate=50r/m;
httpセクションと、その後に次のようなものlocation内のセクションserverセクション:
limit_req zone=default burst=10 nodelay;
/staticあなたが特定のセクションにそれを持たないようにするために、それを別のlocationものにし、limit_reqディレクティブ(または逆)を含めないようにします。
$http_authorization変数を使用して、キーがIPアドレスではなくヘッダーなどの新しいゾーンを定義することができます。つまり、ユーザーごとのレート制限を行う場所セクションでゾーンをlimit_req_zone $http_authorization zone = per_user : 10m rate = 5r/s使用per_userできます。テストされていないので、ドキュメントとnginx変数のリストを読むだけです。これを試してみてください。
zone=limit_req_zone代わりにを付けるつもりでしたか?