limit_req truncating responses

Maxim Dounin mdounin at mdounin.ru
Mon Sep 28 02:21:54 MSD 2009


Hello!

On Sun, Sep 27, 2009 at 05:59:07PM -0400, brianf wrote:

> Hello,
> I'm seeing some undocumented behavior when using limit_req and limit_req_zone. It seems that connections that should be delayed are actually being truncated in the middle. I see this using multiple clients both as errors in the clients and by inspecting the actual file. I found a reference to another user seeing this here: http://www.ruby-forum.com/topic/173021 but I don't see anything there to help stop it.
> 
> I have configured my zone for now exactly as the docs:
> limit_req_zone  $binary_remote_addr  zone=one:10m   rate=1r/s;
> 
> and my location as:
> limit_req zone=one burst=5000;
> 
> I run a series of file transfers and it cuts off at the same truncated file regardless if the burst is 5, 50, or 5000
> 
> I'm running .7.62 on RHEL.
> 
> Any suggestions on how to avoid the truncated files, and why the burst level seems to not have any effect?

This was fixed in 0.8.5:

    *) Bugfix: in ngx_http_limit_req_module.

This fix wasn't yet merged into stable branch.  If you have to use 
stable for some reason - workaround is to use

   limit_req ... nodelay;

or apply relevant patch manually.  It can be found here:

http://mdounin.ru/hg/nginx-vendor-current/diff/e8b686f230a8/src/http/modules/ngx_http_limit_req_module.c
http://mdounin.ru/hg/nginx-vendor-current/raw-diff/e8b686f230a8/src/http/modules/ngx_http_limit_req_module.c

Maxim Dounin





More information about the nginx mailing list