Hello,
I am trying to understand how the HttpLimitReq Module works. I have read that it uses the Leaky Bucket Algorithm, however I am not sure how to understand the behaviour I am observing. Here is my test setup:
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/m;
location /test {
limit_req zone=one nodelay;
}
Every resource under /test should be accessible only once per minute - is that right?
Now I have set up a test script to download a file from /test every second and I get the following results:
success
blocked
blocked
blocked
blocked
success
...
So every fifth request is coming through, so In total I get 12 successful requests and 48 blocked request per minute. However, from the rate setting I would expect to have only one successful download and 59 blocked requested.
Can anyone explain why this is happening? Also is there a way to configure nginx to show the behaviour I am expecting?
Thank you for your help!
Best regards,
Jonas Kaufmann