Estoy buscando una solución para este problema . Entiendo el razonamiento por el cual la configuración en esa pregunta no funciona, pero trato de llegar a una solución donde pueda hacerlo funcionar.
La idea es permitir la carga de archivos grandes solo en ciertas URL. Puedo usar un location
bloque para esto, pero el problema es: tengo un patrón php frontcontroller:
location ~ \.php {
# ...
fastcgi_pass unix:/tmp/php5-fpm.sock;
}
Mi configuración total se ve así:
# ...
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;
}
}
}
Según tengo entendido, solo se aplicará un bloque de ubicación. Entonces, si tengo un tamaño de solicitud predeterminado de 512K, el 256M nunca se aplicará ya que todas las solicitudes coinciden a través del patrón del controlador frontal ~ \.php
.
Estoy en lo cierto en este caso y, de ser así, ¿qué se puede configurar para que los visitantes no puedan subir nada excepto cuando lo hacen admin/upload
?