我正在寻找此问题的解决方案。我理解为什么该问题中的设置无法正常工作的原因,但是我尝试找到一种可以使其正常工作的解决方案。
这个想法是只允许在某些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;
}
}
}
据我了解,只会应用一个位置块。因此,如果我的默认请求大小为512K,则将不会应用256M,因为所有请求都是通过frontcontroller模式匹配的~ \.php
。
在这种情况下,我是对的admin/upload
吗?如果可以,可以进行哪些配置,以使访问者只能上传到,而不能上传任何内容?