proxy buffering for media files?

wishmaster artemrts at
Wed Sep 4 04:12:22 UTC 2013

 --- Original message ---
From: "Maxim Dounin" <mdounin at>
Date: 3 September 2013, 17:58:00

> Hello!
> On Tue, Sep 03, 2013 at 10:39:49AM -0400, bkosborne wrote:
> > I'm working on a configuration for an nginx proxy that splits requests
> > between two upstream servers. The main reason I'm using a proxy is for SSL
> > termination and for redundancy between the two upstream servers. Each
> > upstream server is just a simple nginx server with identical media files
> > stored on each.
> > 
> > The largest media file requested is around 2.5 megabytes. There are files
> > larger than that, but they are requested in byte-ranges from our CDN.
> > 
> > I'm wondering how I should configure proxy buffering here. I noticed that
> > the default is set to on:
> >
> > But, I'm not sure the default values for the buffer sizes and whatnot are
> > ideal. I've had proxy_buffering turned on for quite a while now, and have
> > noticed that the proxy_temp directory has over 1 GB of data in it. To my
> > understanding, this folder is used when the in-memory buffers cannot hold
> > all of the data from the upstream, so it is written to disk.
> > 
> > 1. If I set proxy_buffering to off, does that mean that the proxy streams
> > the data directly to the client without buffering anything? Essentially,
> > that would mean that an nginx worker would be "busy" on both the upstream
> > and proxy server for the entire duration of the request, correct?
> > 
> > 2. If I keep it on, does it make sense to change the buffer sizes so that
> > the entire response from the upstream can fit into memory? I assume that
> > would speed up the responses so that nothing is written to disk (slow). From
> > my novice perspective, it seems counter intuitive to essentially read a file
> > from upstream disk, write it to proxy disk, and then read it from proxy disk
> > again.
> > 
> > What is a common use case for using proxy_buffering? Since it's a default
> > option, I assume it's commonly used and for good reason. I'm just having a
> > hard time applying the thought process to my specific setup.
> As long as your backend servers aren't limited on the number of 
> connections they can handle, best aproach would be to keep 
> proxy_buffering switched on, but switch off disk buffering using 
> proxy_max_temp_file_size.
  Could you explain why this approach is not suitable for case when backend servers are limited on number of connections.

More information about the nginx mailing list