title: NGinx & Django, serving large files (3gb+)
body: <p>I'm having some problems to serve large file downloads/uploads (3gb+).</p>
  
  <p>As I'm using Django I guess that the problem to serve the file can become from Django or NGinx.</p>
  
  <p>In my NGinx enabled site I have</p>
  
  <pre><code>server {
      ...
      client_max_body_size 4G;
      ...
  }
  </code></pre>
  
  <p>And at django I'm serving the files in chunk sizes:</p>
  
  <pre><code>def return_file(path):
          filename = os.path.basename(path)
          chunk_size = 8192
          response = StreamingHttpResponse(FileWrapper(open(path), chunk_size), content_type=mimetypes.guess_type(path)[0])
          response['Content-Length'] = os.path.getsize(path)    
          response['Content-Disposition'] = 'attachment; filename={0}'.format(filename)
          return response
  </code></pre>
  
  <p>This method allowed me to pass from downloads of 600Mb~ to 2.6Gb, but it seems that the downloads are getting truncated at 2.6Gb. I traced the error:</p>
  
  <pre><code>2015/09/04 11:31:30 [error] 831#0: *553 upstream prematurely closed connection while reading upstream, client: 127.0.0.1, server: localhost, request: "GET /chat/download/photorec.zip/ HTTP/1.1", upstream: "http://unix:/web/rsmweb/run/gunicorn.sock:/chat/download/photorec.zip/", host: "localhost", referrer: "http://localhost/chat/2/" 
  </code></pre>
  
  <p>After reading some posts I added the following to my NGinx conf:</p>
  
  <pre><code>   proxy_read_timeout 300;
     proxy_connect_timeout 300;
     proxy_redirect off;
  </code></pre>
  
  <p>But I got the same error with an <code>*1</code> instead of a <code>*553*</code></p>
  
  <p>I also thought that It could be a Django database Timeout, so I added:</p>
  
  <pre><code>DATABASE_OPTIONS = {
      'connect_timeout': 14400,
  }
  </code></pre>
  
  <p>But it is not working either. (the download over the development server takes about 30 seconds)</p>
  
  <p>PS: Some one already pointed me that the problem is Django, but I haven't been able to figure out why. Django is not printing or loggin any error!</p>
  
  <p>Thanks for any help!</p>