Причина, по которой я хочу это сделать, заключается в том, что пользователи разрабатывают против нашего API с помощью JavaScript, а некоторые разработчики облажаются и заставляют посетителей захлопывать сервер с помощью запросов AJAX. Когда это происходит, я хочу иметь возможность регулировать запросы API, возможно, до 50 запросов в минуту , или что-то в этом роде.
Примечание: (в частности, ресурсоемкие ресурсы БД, поэтому, возможно, на уровне пути, а не для всего сервера (например, throttle "/ json_api /", но не "/ static /").
источник
zone=limit_req_zone
вместо этого?$http_authorization
переменную, чтобы определить новую зону, где ключом является такой заголовок, а не IP-адрес, т. Е., Аlimit_req_zone $http_authorization zone = per_user : 10m rate = 5r/s
затем использоватьper_user
зону в разделах местоположения, где вы хотите сделать ограничение на пользователя. Не проверенный, я только что прочитал документацию и список переменных nginx ... дайте мне знать, если вы попробуете это!