30

実際、数時間グーグルで検索しても何も見つからなかったことに少し驚いていますが、問題は次のとおりです。

nginx を API のスロットルとして機能させたい。

私の設定ファイルには、よく引用されている例が含まれていますlimit_req_zone

limit_req_zone $binary_remote_addr zone=limit:2m rate=10r/m;

location期待されるものを含む私のディレクティブとともにlimit_req zone=limit nodelay;

X-RateLimit-Remainingnginx がとX-RateLimit-Reset属性の両方の応答メッセージにヘッダーを添付するようにしたいと考えています。基本的に、nginx にアクティブなカウントを使用しrate=10r/mて入力X-RateLimit-Remainingし、同じrate=10r/m値の時間枠を使用しX-RateLimit-Resetて、更新までの残り秒数を入力します。

http {
    limit_req_zone $binary_remote_addr zone=login:10m rate=2r/s;
    limit_req_status 429;
    limit_conn_status 429;

    server {
        listen       80;
        server_name  [removed];

        location / {
            limit_req zone=limit nodelay;

            proxy_pass http://reverse-proxy-example;
            add_header  X-RateLimit-Remaining [nginx variable?];
            add_header  X-RateLimit-Reset [nginx variable?]
        }
}

考え?可能?これらの数値を取得するためにアプリケーションにアクセスすることは避けたいと思います。

4

3 に答える 3