Possible to have a limit_req "nodelay burst" option?

Richard Stanway r1ch+nginx at teamliquid.net
Mon Apr 15 22:18:04 UTC 2013


Hello,
I'm using the limit_req directive to control the rate at which my backends
are hit with requests. Typically a backend will generate a page and the
client will not request anything for a short while, so a rate of 1 per
second works well. Sometimes however a backend will return a HTTP redirect,
and then the client must wait for a one second delay on the request to the
redirected page. I'd like to avoid this if possible to avoid the slow
feeling when users click on redirected links.

The nodelay option looked like it would work at first glance, but this
bypasses the delay completely for all requests up to the burst, so it's
still possible for the backend to be hit with many requests at once.
Ideally I would like to have a "nodelay burst" option to control how many
of the burst requests are processed without delay which I could set to 2 in
my situation, while still delaying any further requests beyond that.

Another idea I had was to have the backend send a special header similar to
how X-Accel-Redirect works, eg X-Limit-Req: 0 to avoid counting a single
request towards the rate limit for purposes of redirects and similar
situations.

Any other thoughts how something like this could work?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20130415/234b820f/attachment.html>


More information about the nginx mailing list