Is it possible that nginx will not buffer the client body?

Pasi Kärkkäinen pasik at iki.fi
Wed Jan 16 15:15:12 UTC 2013


On Sun, Jan 13, 2013 at 08:22:17PM +0800, ?????? wrote:
>    This patch should work between nginx-1.2.6 and nginx-1.3.8.
>    The documentation is here:

>    ## client_body_postpone_sending ##
>    Syntax: **client_body_postpone_sending** `size`
>    Default: 64k
>    Context: `http, server, location`
>    If you specify the `proxy_request_buffering` or
>    `fastcgi_request_buffering` to be off, Nginx will send the body to backend
>    when it receives more than `size` data or the whole request body has been
>    received. It could save the connection and reduce the IO number with
>    backend.
> 
>    ## proxy_request_buffering ##
>    Syntax: **proxy_request_buffering** `on | off`
>    Default: `on`
>    Context: `http, server, location`
>    Specify the request body will be buffered to the disk or not. If it's off,
>    the request body will be stored in memory and sent to backend after Nginx
>    receives more than `client_body_postpone_sending` data. It could save the
>    disk IO with large request body.
> 
> 
>             Note that, if you specify it to be off, the nginx retry mechanism
>    with unsuccessful response will be broken after you sent part of the
>    request to backend. It will just return 500 when it encounters such
>    unsuccessful response. This directive also breaks these variables:
>    $request_body, $request_body_file. You should not use these variables any
>    more while their values are undefined.
>

Hello,

This patch sounds exactly like what I need aswell!
I assume it works for both POST and PUT requests? 

Thanks,

-- Pasi

 
>      Hello!
>      @yaoweibin
> 
>        If you are eager for this feature, you could try my
>        patch: [2]https://github.com/taobao/tengine/pull/91. This patch has
>        been running in our production servers.
> 
>      what's the nginx version your patch based on?
>      Thanks!
>      On Fri, Jan 11, 2013 at 5:17 PM, Ҋΰ±ó <[3]yaoweibin at gmail.com> wrote:
> 
>        I know nginx team are working on it. You can wait for it.
>        If you are eager for this feature, you could try my
>        patch: [4]https://github.com/taobao/tengine/pull/91. This patch has
>        been running in our production servers.
> 
>        2013/1/11 li zJay <[5]zjay1987 at gmail.com>
> 
>          Hello!
>          is it possible that nginx will not buffer the client body before
>          handle the request to upstream?
>          we want to use nginx as a reverse proxy to upload very very big file
>          to the upstream, but the default behavior of nginx is to save the
>          whole request to the local disk first before handle it to the
>          upstream, which make the upstream impossible to process the file on
>          the fly when the file is uploading, results in much high request
>          latency and server-side resource consumption.
>          Thanks!
>          _______________________________________________
>          nginx mailing list
>          [6]nginx at nginx.org
>          [7]http://mailman.nginx.org/mailman/listinfo/nginx
> 
>        --
>        Weibin Yao
>        Developer @ Server Platform Team of Taobao
>        _______________________________________________
>        nginx mailing list
>        [8]nginx at nginx.org
>        [9]http://mailman.nginx.org/mailman/listinfo/nginx
> 
>      _______________________________________________
>      nginx mailing list
>      [10]nginx at nginx.org
>      [11]http://mailman.nginx.org/mailman/listinfo/nginx
> 
>    --
>    Weibin Yao
>    Developer @ Server Platform Team of Taobao
> 
> References
> 
>    Visible links
>    1. mailto:zjay1987 at gmail.com
>    2. https://github.com/taobao/tengine/pull/91
>    3. mailto:yaoweibin at gmail.com
>    4. https://github.com/taobao/tengine/pull/91
>    5. mailto:zjay1987 at gmail.com
>    6. mailto:nginx at nginx.org
>    7. http://mailman.nginx.org/mailman/listinfo/nginx
>    8. mailto:nginx at nginx.org
>    9. http://mailman.nginx.org/mailman/listinfo/nginx
>   10. mailto:nginx at nginx.org
>   11. http://mailman.nginx.org/mailman/listinfo/nginx


> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx



More information about the nginx mailing list