nginx 0.7 and limit_req

Igor Sysoev is at rambler-co.ru
Wed Dec 10 10:32:14 MSK 2008


On Wed, Dec 10, 2008 at 05:36:22PM +1100, Omar Kilani wrote:

> I've recently started using the new limit_req module in nginx 0.7 to
> try to throttle requests to the API of our web service.
> 
> We've been having some issues in that 'delayed' requests seem to be
> returned with a 503 HTTP response header, but with the correct body
> (the limit_req is under a 'location' block with proxy_pass).

The 503 response should have special body.

> The configuration is:
> 
> limit_req_zone  $binary_remote_addr  zone=api_one:10m   rate=1r/s;
> 
> location /services/rest {
>     limit_req zone=api_one burst=5;
>     proxy_pass http://rtm_api;
>     ...
> }
> 
> My intention is to limit requests to an average of 1 request a second,
> burstable to 5 requests, and supporting delaying requests until
> they're within that 1 request / second threshold.
> 
> Is the 503 response a known issue?

limit_req delays excess request until they wil be more than burst value.
This means that if you send 6 simultaneous requests, then 1 will be
processed, next 4 will be delayed for 1s, 2s, 3, and 4s, and 6th will be
reject with 503 code.

> Also, could you tell me how to test this particular configuration to
> make sure it's correct?
> 
> I've tried ab/http_load/siege, etc.


-- 
Igor Sysoev
http://sysoev.ru/en/





More information about the nginx mailing list