15

I have a good virtual host for nginx that works well without using the nginx upload module. When I add upload progress into this my upload request. How can I solve this? i need to upload my files using /?r=upload or /upload?foo=bar and track upload progress data using /progress or something else.

# static9-localhost.sweb server { # upload limit # upload_limit_rate 10240; # request size limitation client_max_body_size 500m; client_body_buffer_size 64k; # document root root /path/to/webapp/static/public/; # index file index index.php; # server name server_name static9-localhost.sweb; # rewrite rules rewrite "^/thumbnail/([A-Za-z0-9]{12})/(.*)/.*$" /index.php?r=thb&unique=$1&prm=$2 last; # / location @frontcontroller { # expires expires max; # disable etag if_modified_since off; add_header 'Last-Modified' ''; # mvc rewrite try_files $uri $uri/ /index.php?$uri&$args; } # upload progress location /upload { upload_pass @frontcontroller; track_uploads proxied 600s; } # progress location = /progress { report_uploads proxied; } # error pages error_page 404 /index.php?r=404; error_page 403 /index.php?r=403; error_page 500 501 502 503 504 /index.php?r=500; # php5-fpm location ~ \.php$ { fastcgi_pass 127.0.0.1:9003; fastcgi_index index.php; fastcgi_read_timeout 300; include fastcgi_params; } # logs access_log /path/to/webapp/logs/static_access.log; error_log /path/to/webapp/logs/static_error.log; } 

For the above virtual host my upload request to /upload/?X-Progress-ID=QLiFKnG5A81K freezes. what is the problem?

I need request such as /?r=blahblah to work well also if I send my upload file into /upload using /?r=upload.

1
  • 2
    If I'm not mistaken, you are two modules in your config: upload module, and upload progress module. The upload module directives seems OK to me, but I think you are missing the upload_progress <zone_name> <zone_size> directive on the location /upload block, which enabled upload progress tracking, as stated on the nginx documentation (wiki.nginx.org/HttpUploadProgressModule#upload_progress). Commented Oct 27, 2013 at 2:00

1 Answer 1

1

I looked through my configs for a working example. I use upload modules and upload progress in such a way:

 upload_progress proxied 4m; ... server { ... location ^~ /progress { report_uploads proxied; } location ^~ /services/ { rewrite ^/(.*?)/?$ /$1.php break; fastcgi_pass unix:/var/run/php5-fpm.sock; include fastcgi_params; } location ^~ /upd/ { upload_pass /services/upload/; upload_pass_args on; upload_store_access group:rw; upload_store /tmp; set $upload_field_name file; upload_set_form_field $upload_field_name.name "$upload_file_name"; upload_set_form_field $upload_field_name.path "$upload_tmp_path"; upload_aggregate_form_field "$upload_field_name.size" "$upload_file_size"; upload_cleanup 400 404 499 500-505; track_uploads proxied 30s; } } 

Also look at the firebug Net tab. Look if your code get a correct json output. Maybe the problem is in client-side really.

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.