Estou procurando uma solução para este problema . Entendo o motivo pelo qual a configuração dessa pergunta não funciona, mas tento chegar a uma solução na qual possa fazê-la funcionar.
A ideia é permitir o upload de arquivos grandes apenas em determinados URLs. Eu posso usar um location
bloco para isso, mas o problema é: Eu tenho um padrão php frontcontroller:
location ~ \.php {
# ...
fastcgi_pass unix:/tmp/php5-fpm.sock;
}
Minha configuração total se parece com:
# ...
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;
}
}
}
Pelo que entendi, apenas um bloco de local será aplicado. Portanto, se eu tiver um tamanho de solicitação padrão de 512K, os 256M nunca serão aplicados, pois todas as solicitações são correspondidas através do padrão do controlador frontal ~ \.php
.
Estou certo neste caso e, em caso afirmativo, o que pode ser configurado para que os visitantes não possam fazer upload de nada, exceto quando fazem upload admin/upload
?