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=uploadatau /upload?foo=bardan melacak unggah data kemajuan menggunakan /progressatau 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=QLiFKnG5A81Kdibekukan. Apa masalahnya?
Saya perlu meminta /?r=blahblahagar berfungsi dengan baik juga jika saya mengirim file unggahan saya untuk /uploaddigunakan /?r=upload.
upload_progress <zone_name> <zone_size>arahan dilocation /uploadblok, yang memungkinkan pelacakan kemajuan unggahan, sebagaimana dinyatakan pada dokumentasi nginx ( wiki.nginx.org/HttpUploadProgressModule#upload_progress ).