NginxHttpUploadProgressModule never response "done" state for large files

Brice Figureau brice+nginx at daysofwonder.com
Fri May 21 14:08:09 MSD 2010


Hi,


On Mon, 2010-05-17 at 08:21 -0400, murphy wrote:
> When uploading large files (>150Mb) , progress  bar shows normal till
> 100% value, but in the end of upload process  he does not send  "done"
> response, and looks like this :
> 
> ....
> new Object({ 'state' : 'uploading', 'received' : 244431206, 'size' :
> 244431206 })
> new Object({ 'state' : 'uploading', 'received' : 244431206, 'size' :
> 244431206 })
> new Object({ 'state' : 'uploading', 'received' : 244431206, 'size' :
> 244431206 })
> new Object({ 'state' : 'uploading', 'received' : 244431206, 'size' :
> 244431206 })
> new Object({ 'state' : 'uploading', 'received' : 244431206, 'size' :
> 244431206 })
> ...
> 
>  and after few seconds  (~30s)    "504 gateway time out"  error is
> showing.

That's strange. Can you please compile nginx with --with-debug, then
activate the debug log and upload agin the same file.
Then send me privately the compressed log file so that I can analyze it.

One possibility is that your upstream is not slurping the file quickly
enough and then nginx timeouts. The upload progress module will report
the upload done only when the upstream finally gets it (which is usually
fast because on LAN or localhost).

What do you use as upstream?

> The host config looks like the one in the UploadProgressModule
> example, other vars
> [b]nginx.conf vars:[/b]
> client_max_body_size       900m;
>  keepalive_timeout   70 30;
>  send_timeout        30s;
> 
> [b]php.ini vars:[/b]
> post_max_size = 300M
> upload_max_filesize = 300M
> max_execution_filesize = 30
> max_input_time = 90
-- 
Brice Figureau
My Blog: http://www.masterzen.fr/




More information about the nginx mailing list