Saya memiliki host virtual yang bagus untuk nginx yang berfungsi dengan baik tanpa menggunakan modul unggah nginx.
Ketika saya menambahkan kemajuan unggah ke dalam permintaan unggahan saya ini. Bagaimana saya bisa memecahkan masalah ini? saya perlu mengunggah file saya menggunakan /?r=upload
atau /upload?foo=bar
dan melacak unggah data kemajuan menggunakan /progress
atau sesuatu yang lain.
# 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;
}
Untuk virtual host di atas, permintaan unggahan saya untuk /upload/?X-Progress-ID=QLiFKnG5A81K
dibekukan. Apa masalahnya?
Saya perlu meminta /?r=blahblah
agar berfungsi dengan baik juga jika saya mengirim file unggahan saya untuk /upload
digunakan /?r=upload
.
upload_progress <zone_name> <zone_size>
arahan dilocation /upload
blok, yang memungkinkan pelacakan kemajuan unggahan, sebagaimana dinyatakan pada dokumentasi nginx ( wiki.nginx.org/HttpUploadProgressModule#upload_progress ).Jawaban:
Saya melihat-lihat konfigurasi saya untuk contoh yang berfungsi. Saya menggunakan modul unggah dan mengunggah kemajuan sedemikian rupa:
Lihat juga tab Firebug Net. Lihat apakah kode Anda mendapatkan output json yang benar. Mungkin masalahnya ada di sisi klien.
sumber