tmp directory filling up
mdounin at mdounin.ru
Mon Jun 16 14:26:56 UTC 2014
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:
> 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... ;)
More information about the nginx