tmp directory filling up

Maxim Dounin mdounin at mdounin.ru
Mon Jun 16 14:26:56 UTC 2014


Hello!

On Mon, Jun 16, 2014 at 03:22:11PM +0400, Andrei Belov wrote:

> 
> On 11 Jun 2014, at 23:23, Maxim Dounin <mdounin at mdounin.ru> wrote:
> 
> > Hello!
> > 
> > On Wed, Jun 11, 2014 at 10:58:47AM -0400, Tatonka wrote:
> > 
> >> Hi, 
> >> 
> >> I have a rails application that is hosted through nginx and passenger. In
> >> this application I want provide very large files for the users to download
> >> (>2GB) using send_file .. which is working just fine on the development and
> >> staging system. On the production system however the system tmp directory is
> >> limited to 1GB (separately mounted disk). 
> >> 
> >> When triggering a download, the tmp folder quickly fills up and the download
> >> breaks once it is completely full. I already moved passengers /tmp directory
> >> to a new location but could find how to do the same for nginx (I did set
> >> $tmp and $tmpdir with no effect). 
> >> 
> >> When looking into the /tmp directory however, I cannot find any large files
> >> that would explain what is happening, nevertheless, df reports it is filling
> >> up at the same time .. 
> >> 
> >> Lastly .. I also specified the proxy_temp_path directive in the nginx
> >> config. Again with no effect. 
> > 
> > The proxy_temp_path is related to the problem, but it's for proxy, 
> > not for passenger, and it's expected that it has no effect in your 
> > case.
> > 
> >> Is there any way to specify which directory nginx uses for its tmp data? Is
> >> nginx even the culprit here?
> > 
> > That's not about nginx, but rather about passenger module for 
> > nginx.
> > 
> > Last time I checked, passenger module for nginx implemented its 
> > own protocol for the upstream module (like proxy/fastcgi/etc), and 
> > should have its own "..._temp_path" directive, as well as 
> > "..._max_temp_file_size" and so on.
> 
> It’s still true:
> 
> https://github.com/phusion/passenger/blob/master/ext/nginx/Configuration.c#L55-L57
> 
> It uses NGX_HTTP_PROXY_TEMP_PATH which is set at configure stage.

And it looks like it doesn't provide relevant directives, so the 
only option left is to switch off buffering completely, using the 
"passenger_buffer_response" directive (which is again incorrectly 
named, it should be "..._buffering").

Well, I never had a reason to say anything good about passenger, 
so it's at least consistent...  ;)

-- 
Maxim Dounin
http://nginx.org/



More information about the nginx mailing list