HttpLimitReq Module not blocking every request?

j0nes2k nginx-forum at nginx.us
Wed Mar 30 15:26:05 MSD 2011


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

Posted at Nginx Forum: http://forum.nginx.org/read.php?2,186851,186851#msg-186851




More information about the nginx mailing list