Я ищу решение этой проблемы . Я понимаю причину, почему установка в этом вопросе не работает, но я пытаюсь найти решение, где я могу заставить его работать.
Идея состоит в том, чтобы разрешить загрузку больших файлов только по определенным URL. Я могу использовать location
блок для этого, но проблема в том, что у меня есть шаблон php frontcontroller:
location ~ \.php {
# ...
fastcgi_pass unix:/tmp/php5-fpm.sock;
}
Мой общий конфиг выглядит так:
# ...
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;
}
}
}
Как я понимаю, будет применен только один блок местоположения. Поэтому, если у меня размер запроса по умолчанию 512 КБ, 256 М никогда не будут применены, поскольку все запросы сопоставляются с помощью шаблона frontcontroller ~ \.php
.
Прав ли я в этом случае, и если да, что можно настроить так, чтобы посетители не могли загружать что-либо, кроме случаев, когда они загружают в admin/upload
?