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

Pasi Kärkkäinen pasik at iki.fi
Fri Jan 18 08:38:21 UTC 2013


On Thu, Jan 17, 2013 at 11:15:58AM +0800, ?????? wrote:
>    Yes. It should work for any request method.
> 

Great, thanks, I'll let you know how it works for me. Probably in two weeks or so.

-- Pasi

>    2013/1/16 Pasi KÀrkkÀinen <[1]pasik at iki.fi>
> 
>      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][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][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][4]https://github.com/taobao/tengine/pull/91.
>      This patch has
>      > Â  Â  Â  Â been running in our production servers.
>      >
>      > Â  Â  Â  Â 2013/1/11 li zJay <[5][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][6]nginx at nginx.org
>      > Â  Â  Â  Â  Â [7][7]http://mailman.nginx.org/mailman/listinfo/nginx
>      >
>      > Â  Â  Â  Â --
>      > Â  Â  Â  Â Weibin Yao
>      > Â  Â  Â  Â Developer @ Server Platform Team of Taobao
>      > Â  Â  Â  Â _______________________________________________
>      > Â  Â  Â  Â nginx mailing list
>      > Â  Â  Â  Â [8][8]nginx at nginx.org
>      > Â  Â  Â  Â [9][9]http://mailman.nginx.org/mailman/listinfo/nginx
>      >
>      > Â  Â  Â _______________________________________________
>      > Â  Â  Â nginx mailing list
>      > Â  Â  Â [10][10]nginx at nginx.org
>      > Â  Â  Â [11][11]http://mailman.nginx.org/mailman/listinfo/nginx
>      >
>      > Â  Â --
>      > Â  Â Weibin Yao
>      > Â  Â Developer @ Server Platform Team of Taobao
>      >
>      > References
>      >
>      > Â  Â Visible links
>      > Â  Â 1. mailto:[12]zjay1987 at gmail.com
>      > Â  Â 2. [13]https://github.com/taobao/tengine/pull/91
>      > Â  Â 3. mailto:[14]yaoweibin at gmail.com
>      > Â  Â 4. [15]https://github.com/taobao/tengine/pull/91
>      > Â  Â 5. mailto:[16]zjay1987 at gmail.com
>      > Â  Â 6. mailto:[17]nginx at nginx.org
>      > Â  Â 7. [18]http://mailman.nginx.org/mailman/listinfo/nginx
>      > Â  Â 8. mailto:[19]nginx at nginx.org
>      > Â  Â 9. [20]http://mailman.nginx.org/mailman/listinfo/nginx
>      > Â  10. mailto:[21]nginx at nginx.org
>      > Â  11. [22]http://mailman.nginx.org/mailman/listinfo/nginx
> 
>      > _______________________________________________
>      > nginx mailing list
>      > [23]nginx at nginx.org
>      > [24]http://mailman.nginx.org/mailman/listinfo/nginx
> 
>      _______________________________________________
>      nginx mailing list
>      [25]nginx at nginx.org
>      [26]http://mailman.nginx.org/mailman/listinfo/nginx
> 
>    --
>    Weibin Yao
>    Developer @ Server Platform Team of Taobao
> 
> References
> 
>    Visible links
>    1. mailto:pasik at iki.fi
>    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
>   12. mailto:zjay1987 at gmail.com
>   13. https://github.com/taobao/tengine/pull/91
>   14. mailto:yaoweibin at gmail.com
>   15. https://github.com/taobao/tengine/pull/91
>   16. mailto:zjay1987 at gmail.com
>   17. mailto:nginx at nginx.org
>   18. http://mailman.nginx.org/mailman/listinfo/nginx
>   19. mailto:nginx at nginx.org
>   20. http://mailman.nginx.org/mailman/listinfo/nginx
>   21. mailto:nginx at nginx.org
>   22. http://mailman.nginx.org/mailman/listinfo/nginx
>   23. mailto:nginx at nginx.org
>   24. http://mailman.nginx.org/mailman/listinfo/nginx
>   25. mailto:nginx at nginx.org
>   26. 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