4 messages in ru.sysoev.nginxRe: nginx 0.7 and limit_req
FromSent OnAttachments
Omar KilaniDec 9, 2008 10:35 pm 
Igor SysoevDec 9, 2008 11:31 pm 
Omar KilaniDec 10, 2008 12:27 am 
Igor SysoevDec 10, 2008 2:23 am 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Re: nginx 0.7 and limit_reqActions...
From:Igor Sysoev (is@rambler-co.ru)
Date:Dec 9, 2008 11:31:51 pm
List:ru.sysoev.nginx

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.