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

Pasi Kärkkäinen pasik at iki.fi
Mon Feb 25 10:13:05 UTC 2013


On Mon, Feb 25, 2013 at 10:13:42AM +0800, Weibin Yao wrote:
>    Can you show me your configure? It works for me with nginx-1.2.7.
>    Thanks.
>

Hi,

I'm using the nginx 1.2.7 el6 src.rpm rebuilt with "headers more" module added,
and your patch.

I'm using the following configuration:

server {
        listen                  public_ip:443 ssl;
        server_name             service.domain.tld;

        ssl                     on;
        keepalive_timeout       70;

        access_log              /var/log/nginx/access-service.log;
        access_log              /var/log/nginx/access-service-full.log full;
        error_log               /var/log/nginx/error-service.log;

        client_header_buffer_size 64k;
        client_header_timeout   120;

        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_redirect     off;
        proxy_buffering    off;
        proxy_cache        off;
        
	add_header Last-Modified "";
        if_modified_since  off;

        client_max_body_size    262144M;
        client_body_buffer_size 1024k;
        client_body_timeout     240;

        chunked_transfer_encoding off;

#       client_body_postpone_sending    64k;
#       proxy_request_buffering         off;

	location / {

		proxy_pass      https://service-backend;
		
	}
}


Thanks!

-- Pasi


 
>    2013/2/22 Pasi KÀrkkÀinen <[1]pasik at iki.fi>
> 
>      On Fri, Feb 22, 2013 at 11:25:24AM +0200, Pasi KÀrkkÀinen wrote:
>      > On Fri, Feb 22, 2013 at 10:06:11AM +0800, Weibin Yao wrote:
>      > > Â  Â Use the patch I attached in this mail thread instead, don't use
>      the pull
>      > > Â  Â request patch which is for tengine.Ã*
>      > > Â  Â Thanks.
>      > >
>      >
>      > Oh sorry I missed that attachment. It seems to apply and build OK.
>      > I'll start testing it.
>      >
> 
>      I added the patch on top of nginx 1.2.7 and enabled the following
>      options:
> 
>      client_body_postpone_sending    64k;
>      proxy_request_buffering         off;
> 
>      after that connections through the nginx reverse proxy started failing
>      with errors like this:
> 
>      [error] 29087#0: *49 upstream prematurely closed connection while
>      reading response header from upstream
>      [error] 29087#0: *60 upstream sent invalid header while reading response
>      header from upstream
> 
>      And the services are unusable.
> 
>      Commenting out the two config options above makes nginx happy again.
>      Any idea what causes that? Any tips how to troubleshoot it?
>      Thanks!
> 
>      -- Pasi
> 
>      >
>      > > Â  Â 2013/2/22 Pasi KÃ*â*¬rkkÃ*â*¬inen <[1][2]pasik at iki.fi>
>      > >
>      > > Â  Â  Â On Fri, Jan 18, 2013 at 10:38:21AM +0200, Pasi
>      KÃ*â*¬rkkÃ*â*¬inen wrote:
>      > > Â  Â  Â > 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.
>      > > Â  Â  Â >
>      > >
>      > > Â  Â  Â Hi,
>      > >
>      > > Â  Â  Â Adding the tengine pull request 91 on top of nginx 1.2.7
>      doesn't work:
>      > >
>      > > Â  Â  Â cc1: warnings being treated as errors
>      > > Â  Â  Â src/http/ngx_http_request_body.c: In function
>      > > Â  Â  Â 'ngx_http_read_non_buffered_client_request_body':
>      > > Â  Â  Â src/http/ngx_http_request_body.c:506: error: implicit
>      declaration of
>      > > Â  Â  Â function 'ngx_http_top_input_body_filter'
>      > > Â  Â  Â make[1]: *** [objs/src/http/ngx_http_request_body.o] Error 1
>      > > Â  Â  Â make[1]: Leaving directory `/root/src/nginx/nginx-1.2.7'
>      > > Â  Â  Â make: *** [build] Error 2
>      > >
>      > > Â  Â  Â ngx_http_top_input_body_filter() cannot be found from any
>      .c/.h files..
>      > > Â  Â  Â Which other patches should I apply?
>      > >
>      > > Â  Â  Â Perhaps this?
>      > > Â  Â
>      Â [2][3]https://github.com/cfsego/limit_upload_rate/blob/master/for-nginx.patch
>      > >
>      > > Â  Â  Â Thanks,
>      > > Â  Â  Â -- Pasi
>      > >
>      > > Â  Â  Â >
>      > >      > > Ã*  Ã* 2013/1/16 Pasi KÃ**â*¬rkkÃ**â*¬inen
>      <[1][3][4]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][4][5]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][5][6]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][6][7]https://github.com/taobao/tengine/pull/91.
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* This patch has
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* > Ã** Ã* Ã** Ã* Ã** Ã* Ã** been running in
>      our production servers.
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* >
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* > Ã** Ã* Ã** Ã* Ã** Ã* Ã** 2013/1/11 li
>      zJay
>      > > Â  Â  Â <[5][5][7][8]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][8][9]nginx at nginx.org
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* > Ã** Ã* Ã** Ã* Ã** Ã* Ã** Ã* Ã**
>      > > Â  Â  Â [7][7][9][10]http://mailman.nginx.org/mailman/listinfo/nginx
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* >
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* > Ã** Ã* Ã** Ã* Ã** Ã* Ã** --
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* > Ã** Ã* Ã** Ã* Ã** Ã* Ã** Weibin Yao
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* > Ã** Ã* Ã** Ã* Ã** Ã* Ã** Developer @
>      Server Platform Team of
>      > > Â  Â  Â Taobao
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* > Ã** Ã* Ã** Ã* Ã** Ã* Ã**
>      > > Â  Â  Â _______________________________________________
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* > Ã** Ã* Ã** Ã* Ã** Ã* Ã** nginx mailing
>      list
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* > Ã** Ã* Ã** Ã* Ã** Ã* Ã**
>      [8][8][10][11]nginx at nginx.org
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* > Ã** Ã* Ã** Ã* Ã** Ã* Ã**
>      > > Â  Â
>      Â [9][9][11][12]http://mailman.nginx.org/mailman/listinfo/nginx
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* >
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* > Ã** Ã* Ã** Ã* Ã**
>      > > Â  Â  Â _______________________________________________
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* > Ã** Ã* Ã** Ã* Ã** nginx mailing list
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* > Ã** Ã* Ã** Ã* Ã**
>      [10][10][12][13]nginx at nginx.org
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* > Ã** Ã* Ã** Ã* Ã**
>      > > Â  Â
>      Â [11][11][13][14]http://mailman.nginx.org/mailman/listinfo/nginx
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* >
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* > Ã** Ã* Ã** --
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* > Ã** Ã* Ã** Weibin Yao
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* > Ã** Ã* Ã** Developer @ Server Platform
>      Team of Taobao
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* >
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* > References
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* >
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* > Ã** Ã* Ã** Visible links
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* > Ã** Ã* Ã** 1.
>      mailto:[12][14][15]zjay1987 at gmail.com
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* > Ã** Ã* Ã** 2.
>      > > Â  Â  Â [13][15][16]https://github.com/taobao/tengine/pull/91
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* > Ã** Ã* Ã** 3.
>      mailto:[14][16][17]yaoweibin at gmail.com
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* > Ã** Ã* Ã** 4.
>      > > Â  Â  Â [15][17][18]https://github.com/taobao/tengine/pull/91
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* > Ã** Ã* Ã** 5.
>      mailto:[16][18][19]zjay1987 at gmail.com
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* > Ã** Ã* Ã** 6.
>      mailto:[17][19][20]nginx at nginx.org
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* > Ã** Ã* Ã** 7.
>      > > Â  Â  Â [18][20][21]http://mailman.nginx.org/mailman/listinfo/nginx
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* > Ã** Ã* Ã** 8.
>      mailto:[19][21][22]nginx at nginx.org
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* > Ã** Ã* Ã** 9.
>      > > Â  Â  Â [20][22][23]http://mailman.nginx.org/mailman/listinfo/nginx
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* > Ã** Ã* 10.
>      mailto:[21][23][24]nginx at nginx.org
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* > Ã** Ã* 11.
>      > > Â  Â  Â [22][24][25]http://mailman.nginx.org/mailman/listinfo/nginx
>      > > Â  Â  Â > >
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* >
>      _______________________________________________
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* > nginx mailing list
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* > [23][25][26]nginx at nginx.org
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* >
>      [24][26][27]http://mailman.nginx.org/mailman/listinfo/nginx
>      > > Â  Â  Â > >
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã*
>      _______________________________________________
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* nginx mailing list
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã* [25][27][28]nginx at nginx.org
>      > > Â  Â  Â > > Ã* Â Ã* Â Ã*
>      [26][28][29]http://mailman.nginx.org/mailman/listinfo/nginx
>      > > Â  Â  Â > >
>      > > Â  Â  Â > > Ã* Â Ã* --
>      > > Â  Â  Â > > Ã* Â Ã* Weibin Yao
>      > > Â  Â  Â > > Ã* Â Ã* Developer @ Server Platform Team of Taobao
>      > > Â  Â  Â > >
>      > > Â  Â  Â > > References
>      > > Â  Â  Â > >
>      > > Â  Â  Â > > Ã* Â Ã* Visible links
>      > > Â  Â  Â > > Ã* Â Ã* 1. mailto:[29][30]pasik at iki.fi
>      > > Â  Â  Â > > Ã* Â Ã* 2.
>      [30][31]https://github.com/taobao/tengine/pull/91
>      > > Â  Â  Â > > Ã* Â Ã* 3. mailto:[31][32]yaoweibin at gmail.com
>      > > Â  Â  Â > > Ã* Â Ã* 4.
>      [32][33]https://github.com/taobao/tengine/pull/91
>      > > Â  Â  Â > > Ã* Â Ã* 5. mailto:[33][34]zjay1987 at gmail.com
>      > > Â  Â  Â > > Ã* Â Ã* 6. mailto:[34][35]nginx at nginx.org
>      > > Â  Â  Â > > Ã* Â Ã* 7.
>      [35][36]http://mailman.nginx.org/mailman/listinfo/nginx
>      > > Â  Â  Â > > Ã* Â Ã* 8. mailto:[36][37]nginx at nginx.org
>      > > Â  Â  Â > > Ã* Â Ã* 9.
>      [37][38]http://mailman.nginx.org/mailman/listinfo/nginx
>      > > Â  Â  Â > > Ã* Â 10. mailto:[38][39]nginx at nginx.org
>      > > Â  Â  Â > > Ã* Â 11.
>      [39][40]http://mailman.nginx.org/mailman/listinfo/nginx
>      > > Â  Â  Â > > Ã* Â 12. mailto:[40][41]zjay1987 at gmail.com
>      > > Â  Â  Â > > Ã* Â 13.
>      [41][42]https://github.com/taobao/tengine/pull/91
>      > > Â  Â  Â > > Ã* Â 14. mailto:[42][43]yaoweibin at gmail.com
>      > > Â  Â  Â > > Ã* Â 15.
>      [43][44]https://github.com/taobao/tengine/pull/91
>      > > Â  Â  Â > > Ã* Â 16. mailto:[44][45]zjay1987 at gmail.com
>      > > Â  Â  Â > > Ã* Â 17. mailto:[45][46]nginx at nginx.org
>      > > Â  Â  Â > > Ã* Â 18.
>      [46][47]http://mailman.nginx.org/mailman/listinfo/nginx
>      > > Â  Â  Â > > Ã* Â 19. mailto:[47][48]nginx at nginx.org
>      > > Â  Â  Â > > Ã* Â 20.
>      [48][49]http://mailman.nginx.org/mailman/listinfo/nginx
>      > > Â  Â  Â > > Ã* Â 21. mailto:[49][50]nginx at nginx.org
>      > > Â  Â  Â > > Ã* Â 22.
>      [50][51]http://mailman.nginx.org/mailman/listinfo/nginx
>      > > Â  Â  Â > > Ã* Â 23. mailto:[51][52]nginx at nginx.org
>      > > Â  Â  Â > > Ã* Â 24.
>      [52][53]http://mailman.nginx.org/mailman/listinfo/nginx
>      > > Â  Â  Â > > Ã* Â 25. mailto:[53][54]nginx at nginx.org
>      > > Â  Â  Â > > Ã* Â 26.
>      [54][55]http://mailman.nginx.org/mailman/listinfo/nginx
>      > > Â  Â  Â >
>      > > Â  Â  Â > > _______________________________________________
>      > > Â  Â  Â > > nginx mailing list
>      > > Â  Â  Â > > [55][56]nginx at nginx.org
>      > > Â  Â  Â > > [56][57]http://mailman.nginx.org/mailman/listinfo/nginx
>      > > Â  Â  Â >
>      > > Â  Â  Â > _______________________________________________
>      > > Â  Â  Â > nginx mailing list
>      > > Â  Â  Â > [57][58]nginx at nginx.org
>      > > Â  Â  Â > [58][59]http://mailman.nginx.org/mailman/listinfo/nginx
>      > >
>      > > Â  Â  Â _______________________________________________
>      > > Â  Â  Â nginx mailing list
>      > > Â  Â  Â [59][60]nginx at nginx.org
>      > > Â  Â  Â [60][61]http://mailman.nginx.org/mailman/listinfo/nginx
>      > >
>      > > Â  Â --
>      > > Â  Â Weibin Yao
>      > > Â  Â Developer @ Server Platform Team of Taobao
>      > >
>      > > References
>      > >
>      > > Â  Â Visible links
>      > > Â  Â 1. mailto:[62]pasik at iki.fi
>      > > Â  Â 2.
>      [63]https://github.com/cfsego/limit_upload_rate/blob/master/for-nginx.patch
>      > > Â  Â 3. mailto:[64]pasik at iki.fi
>      > > Â  Â 4. [65]https://github.com/taobao/tengine/pull/91
>      > > Â  Â 5. mailto:[66]yaoweibin at gmail.com
>      > > Â  Â 6. [67]https://github.com/taobao/tengine/pull/91
>      > > Â  Â 7. mailto:[68]zjay1987 at gmail.com
>      > > Â  Â 8. mailto:[69]nginx at nginx.org
>      > > Â  Â 9. [70]http://mailman.nginx.org/mailman/listinfo/nginx
>      > > Â  10. mailto:[71]nginx at nginx.org
>      > > Â  11. [72]http://mailman.nginx.org/mailman/listinfo/nginx
>      > > Â  12. mailto:[73]nginx at nginx.org
>      > > Â  13. [74]http://mailman.nginx.org/mailman/listinfo/nginx
>      > > Â  14. mailto:[75]zjay1987 at gmail.com
>      > > Â  15. [76]https://github.com/taobao/tengine/pull/91
>      > > Â  16. mailto:[77]yaoweibin at gmail.com
>      > > Â  17. [78]https://github.com/taobao/tengine/pull/91
>      > > Â  18. mailto:[79]zjay1987 at gmail.com
>      > > Â  19. mailto:[80]nginx at nginx.org
>      > > Â  20. [81]http://mailman.nginx.org/mailman/listinfo/nginx
>      > > Â  21. mailto:[82]nginx at nginx.org
>      > > Â  22. [83]http://mailman.nginx.org/mailman/listinfo/nginx
>      > > Â  23. mailto:[84]nginx at nginx.org
>      > > Â  24. [85]http://mailman.nginx.org/mailman/listinfo/nginx
>      > > Â  25. mailto:[86]nginx at nginx.org
>      > > Â  26. [87]http://mailman.nginx.org/mailman/listinfo/nginx
>      > > Â  27. mailto:[88]nginx at nginx.org
>      > > Â  28. [89]http://mailman.nginx.org/mailman/listinfo/nginx
>      > > Â  29. mailto:[90]pasik at iki.fi
>      > > Â  30. [91]https://github.com/taobao/tengine/pull/91
>      > > Â  31. mailto:[92]yaoweibin at gmail.com
>      > > Â  32. [93]https://github.com/taobao/tengine/pull/91
>      > > Â  33. mailto:[94]zjay1987 at gmail.com
>      > > Â  34. mailto:[95]nginx at nginx.org
>      > > Â  35. [96]http://mailman.nginx.org/mailman/listinfo/nginx
>      > > Â  36. mailto:[97]nginx at nginx.org
>      > > Â  37. [98]http://mailman.nginx.org/mailman/listinfo/nginx
>      > > Â  38. mailto:[99]nginx at nginx.org
>      > > Â  39. [100]http://mailman.nginx.org/mailman/listinfo/nginx
>      > > Â  40. mailto:[101]zjay1987 at gmail.com
>      > > Â  41. [102]https://github.com/taobao/tengine/pull/91
>      > > Â  42. mailto:[103]yaoweibin at gmail.com
>      > > Â  43. [104]https://github.com/taobao/tengine/pull/91
>      > > Â  44. mailto:[105]zjay1987 at gmail.com
>      > > Â  45. mailto:[106]nginx at nginx.org
>      > > Â  46. [107]http://mailman.nginx.org/mailman/listinfo/nginx
>      > > Â  47. mailto:[108]nginx at nginx.org
>      > > Â  48. [109]http://mailman.nginx.org/mailman/listinfo/nginx
>      > > Â  49. mailto:[110]nginx at nginx.org
>      > > Â  50. [111]http://mailman.nginx.org/mailman/listinfo/nginx
>      > > Â  51. mailto:[112]nginx at nginx.org
>      > > Â  52. [113]http://mailman.nginx.org/mailman/listinfo/nginx
>      > > Â  53. mailto:[114]nginx at nginx.org
>      > > Â  54. [115]http://mailman.nginx.org/mailman/listinfo/nginx
>      > > Â  55. mailto:[116]nginx at nginx.org
>      > > Â  56. [117]http://mailman.nginx.org/mailman/listinfo/nginx
>      > > Â  57. mailto:[118]nginx at nginx.org
>      > > Â  58. [119]http://mailman.nginx.org/mailman/listinfo/nginx
>      > > Â  59. mailto:[120]nginx at nginx.org
>      > > Â  60. [121]http://mailman.nginx.org/mailman/listinfo/nginx
>      >
>      > > _______________________________________________
>      > > nginx mailing list
>      > > [122]nginx at nginx.org
>      > > [123]http://mailman.nginx.org/mailman/listinfo/nginx
>      >
>      > _______________________________________________
>      > nginx mailing list
>      > [124]nginx at nginx.org
>      > [125]http://mailman.nginx.org/mailman/listinfo/nginx
> 
>      _______________________________________________
>      nginx mailing list
>      [126]nginx at nginx.org
>      [127]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. mailto:pasik at iki.fi
>    3. https://github.com/cfsego/limit_upload_rate/blob/master/for-nginx.patch
>    4. mailto:pasik at iki.fi
>    5. https://github.com/taobao/tengine/pull/91
>    6. mailto:yaoweibin at gmail.com
>    7. https://github.com/taobao/tengine/pull/91
>    8. mailto:zjay1987 at gmail.com
>    9. mailto:nginx at nginx.org
>   10. http://mailman.nginx.org/mailman/listinfo/nginx
>   11. mailto:nginx at nginx.org
>   12. http://mailman.nginx.org/mailman/listinfo/nginx
>   13. mailto:nginx at nginx.org
>   14. http://mailman.nginx.org/mailman/listinfo/nginx
>   15. mailto:zjay1987 at gmail.com
>   16. https://github.com/taobao/tengine/pull/91
>   17. mailto:yaoweibin at gmail.com
>   18. https://github.com/taobao/tengine/pull/91
>   19. mailto:zjay1987 at gmail.com
>   20. mailto:nginx at nginx.org
>   21. http://mailman.nginx.org/mailman/listinfo/nginx
>   22. mailto:nginx at nginx.org
>   23. http://mailman.nginx.org/mailman/listinfo/nginx
>   24. mailto:nginx at nginx.org
>   25. http://mailman.nginx.org/mailman/listinfo/nginx
>   26. mailto:nginx at nginx.org
>   27. http://mailman.nginx.org/mailman/listinfo/nginx
>   28. mailto:nginx at nginx.org
>   29. http://mailman.nginx.org/mailman/listinfo/nginx
>   30. mailto:pasik at iki.fi
>   31. https://github.com/taobao/tengine/pull/91
>   32. mailto:yaoweibin at gmail.com
>   33. https://github.com/taobao/tengine/pull/91
>   34. mailto:zjay1987 at gmail.com
>   35. mailto:nginx at nginx.org
>   36. http://mailman.nginx.org/mailman/listinfo/nginx
>   37. mailto:nginx at nginx.org
>   38. http://mailman.nginx.org/mailman/listinfo/nginx
>   39. mailto:nginx at nginx.org
>   40. http://mailman.nginx.org/mailman/listinfo/nginx
>   41. mailto:zjay1987 at gmail.com
>   42. https://github.com/taobao/tengine/pull/91
>   43. mailto:yaoweibin at gmail.com
>   44. https://github.com/taobao/tengine/pull/91
>   45. mailto:zjay1987 at gmail.com
>   46. mailto:nginx at nginx.org
>   47. http://mailman.nginx.org/mailman/listinfo/nginx
>   48. mailto:nginx at nginx.org
>   49. http://mailman.nginx.org/mailman/listinfo/nginx
>   50. mailto:nginx at nginx.org
>   51. http://mailman.nginx.org/mailman/listinfo/nginx
>   52. mailto:nginx at nginx.org
>   53. http://mailman.nginx.org/mailman/listinfo/nginx
>   54. mailto:nginx at nginx.org
>   55. http://mailman.nginx.org/mailman/listinfo/nginx
>   56. mailto:nginx at nginx.org
>   57. http://mailman.nginx.org/mailman/listinfo/nginx
>   58. mailto:nginx at nginx.org
>   59. http://mailman.nginx.org/mailman/listinfo/nginx
>   60. mailto:nginx at nginx.org
>   61. http://mailman.nginx.org/mailman/listinfo/nginx
>   62. mailto:pasik at iki.fi
>   63. https://github.com/cfsego/limit_upload_rate/blob/master/for-nginx.patch
>   64. mailto:pasik at iki.fi
>   65. https://github.com/taobao/tengine/pull/91
>   66. mailto:yaoweibin at gmail.com
>   67. https://github.com/taobao/tengine/pull/91
>   68. mailto:zjay1987 at gmail.com
>   69. mailto:nginx at nginx.org
>   70. http://mailman.nginx.org/mailman/listinfo/nginx
>   71. mailto:nginx at nginx.org
>   72. http://mailman.nginx.org/mailman/listinfo/nginx
>   73. mailto:nginx at nginx.org
>   74. http://mailman.nginx.org/mailman/listinfo/nginx
>   75. mailto:zjay1987 at gmail.com
>   76. https://github.com/taobao/tengine/pull/91
>   77. mailto:yaoweibin at gmail.com
>   78. https://github.com/taobao/tengine/pull/91
>   79. mailto:zjay1987 at gmail.com
>   80. mailto:nginx at nginx.org
>   81. http://mailman.nginx.org/mailman/listinfo/nginx
>   82. mailto:nginx at nginx.org
>   83. http://mailman.nginx.org/mailman/listinfo/nginx
>   84. mailto:nginx at nginx.org
>   85. http://mailman.nginx.org/mailman/listinfo/nginx
>   86. mailto:nginx at nginx.org
>   87. http://mailman.nginx.org/mailman/listinfo/nginx
>   88. mailto:nginx at nginx.org
>   89. http://mailman.nginx.org/mailman/listinfo/nginx
>   90. mailto:pasik at iki.fi
>   91. https://github.com/taobao/tengine/pull/91
>   92. mailto:yaoweibin at gmail.com
>   93. https://github.com/taobao/tengine/pull/91
>   94. mailto:zjay1987 at gmail.com
>   95. mailto:nginx at nginx.org
>   96. http://mailman.nginx.org/mailman/listinfo/nginx
>   97. mailto:nginx at nginx.org
>   98. http://mailman.nginx.org/mailman/listinfo/nginx
>   99. mailto:nginx at nginx.org
>  100. http://mailman.nginx.org/mailman/listinfo/nginx
>  101. mailto:zjay1987 at gmail.com
>  102. https://github.com/taobao/tengine/pull/91
>  103. mailto:yaoweibin at gmail.com
>  104. https://github.com/taobao/tengine/pull/91
>  105. mailto:zjay1987 at gmail.com
>  106. mailto:nginx at nginx.org
>  107. http://mailman.nginx.org/mailman/listinfo/nginx
>  108. mailto:nginx at nginx.org
>  109. http://mailman.nginx.org/mailman/listinfo/nginx
>  110. mailto:nginx at nginx.org
>  111. http://mailman.nginx.org/mailman/listinfo/nginx
>  112. mailto:nginx at nginx.org
>  113. http://mailman.nginx.org/mailman/listinfo/nginx
>  114. mailto:nginx at nginx.org
>  115. http://mailman.nginx.org/mailman/listinfo/nginx
>  116. mailto:nginx at nginx.org
>  117. http://mailman.nginx.org/mailman/listinfo/nginx
>  118. mailto:nginx at nginx.org
>  119. http://mailman.nginx.org/mailman/listinfo/nginx
>  120. mailto:nginx at nginx.org
>  121. http://mailman.nginx.org/mailman/listinfo/nginx
>  122. mailto:nginx at nginx.org
>  123. http://mailman.nginx.org/mailman/listinfo/nginx
>  124. mailto:nginx at nginx.org
>  125. http://mailman.nginx.org/mailman/listinfo/nginx
>  126. mailto:nginx at nginx.org
>  127. 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