HttpLimitReq Module not blocking every request?
Maxim Dounin
mdounin at mdounin.ru
Wed Mar 30 16:22:32 MSD 2011
Hello!
On Wed, Mar 30, 2011 at 07:26:05AM -0400, j0nes2k wrote:
> 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?
Yes. Once per minute from single ip address.
> 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?
My bet you've forgot to reload config after changing rate.
Maxim Dounin
More information about the nginx
mailing list