Ich suche nach einer Lösung für dieses Problem . Ich verstehe die Gründe, warum das Setup in dieser Frage nicht funktioniert, aber ich versuche, eine Lösung zu finden, bei der ich es zum Laufen bringen kann.
Die Idee ist, das Hochladen großer Dateien nur für bestimmte URLs zuzulassen. Ich kann einen location
Block dafür verwenden, aber das Problem ist: Ich habe ein PHP-Frontcontroller-Muster:
location ~ \.php {
# ...
fastcgi_pass unix:/tmp/php5-fpm.sock;
}
Meine Gesamtkonfiguration sieht aus wie:
# ...
http {
# ...
client_max_body_size 512K;
server {
server_name example.com;
root /var/www/example.com/public;
location / {
try_files $uri /index.php?$query_string;
}
location /admin/upload {
client_max_body_size 256M;
}
location ~ \.php {
# ...
fastcgi_pass unix:/tmp/php5-fpm.sock;
}
}
}
Soweit ich weiß, wird nur ein Standortblock angewendet. Wenn ich also eine Standardanforderungsgröße von 512 KB habe, werden die 256 MB niemals angewendet, da alle Anforderungen über das Frontcontroller-Muster abgeglichen werden ~ \.php
.
Habe ich in diesem Fall Recht und wenn ja, was kann so konfiguriert werden, dass Besucher nichts hochladen können, außer wenn sie hochladen admin/upload
?