回答:
これは、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
代わりにを付けるつもりでしたか?