How fastcgi temp works?

Maxim Dounin mdounin at
Fri Jan 31 01:43:40 UTC 2014


On Thu, Jan 30, 2014 at 12:44:25PM -0500, portoist wrote:

> Hello everybody,
> We are using nginx with php-fpm. Our application works as download
> aggregator. We download files from 3rd party servers and send it to client
> while it's still being downloaded. It means that we can't use
> X-Accel-Redirect, since file isn't fully downloaded and X-Accel-Redirect
> sets Content-Length to actual file size. We set required headers in php and
> in cycle read chunks of file, prints it and flush it to output. Everything
> seems to work fine except large files (over 1GB) on slow download speeds.
> Downloading was interrupted at 1GB - it seemed like client has disconnected
> - calling connection_aborted in php returned true. I have found out that
> fastcgi_max_temp_file_size is 1GB by default - so I have increased it to
> 2GB. 
> Now how exactly does fastcgi temp file works? Does every request has its own
> temp file? Or is there one common temp file?
> Thanks for hints!

Some hints can be found here:

Downloading is _not_ interrupted by nginx after reaching 1GB, but 
it will stop loading further data from a backend till already 
buffered data are sent.  This may take a while if client 
connection is slow, leading to timeouts on backend's side.

Maxim Dounin

More information about the nginx mailing list