3 votes

Nginx - Puis-je spécifier le taux dans limit_req_zone en requêtes par heure ?

Tout en limitant le nombre de demandes provenant d'une IP, j'utilise

limit_req_zone  $binary_remote_addr zone=one:10m rate=1r/m;

Je peux spécifier le taux en r/m (demandes par minute) ou r/s (demandes par seconde). Existe-t-il un moyen de spécifier le taux en demandes/heure ?

Par exemple, je veux que le taux soit de 75 demandes/heure. Ce sera donc 1,25r/m, mais r/m doit être un nombre entier. Donc, même de cette manière, cela ne fonctionne pas.

Veuillez m'aider.

7voto

duggulous Points 807

À un moment donné, j'ai eu besoin de la même fonction pour définir des limites de taux par heure, par jour, par semaine, etc.

J'avais envie de construire un clone de ngx_http_limit_req_module d'abord, mais il suffit ensuite d'intégrer les changements nécessaires à l nginx-mod .

Cela fonctionne donc avec nginx-mod :

limit_req_zone $binary_remote_addr zone=one:10m rate=1r/h; # 1 request per hour
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/d; # 1 request per day
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/w; # 1 request per week
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/M; # 1 request per month
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/Y; # 1 request per year

6voto

Tim Points 28848

Selon la documentation vous pouvez spécifier des requêtes par seconde ou par minute, pas des requêtes par heure, donc non ce n'est pas possible.

The rate is specified in requests per second (r/s). If a rate of
less than one request per second is desired, it is specified in
request per minute (r/m). For example, half-request per second
is 30r/m.

Je vous suggère d'arrondir à la hausse ou à la baisse, en fonction de votre cas d'utilisation. 1r/s correspond à 60 requêtes par minute, 2r/s à 120 requêtes par minute.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X