Tôi đang tìm kiếm một giải pháp cho vấn đề này . Tôi hiểu lý do tại sao thiết lập trong câu hỏi đó không hoạt động, nhưng tôi cố gắng đi đến một giải pháp mà tôi có thể làm cho nó hoạt động.
Ý tưởng là chỉ cho phép tải lên tệp lớn trên một số url nhất định. Tôi có thể sử dụng một location
khối cho việc này, nhưng vấn đề là: Tôi có một mẫu trình điều khiển phía trước php:
location ~ \.php {
# ...
fastcgi_pass unix:/tmp/php5-fpm.sock;
}
Tổng cấu hình của tôi trông như:
# ...
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;
}
}
}
Theo tôi hiểu, chỉ có một khối vị trí sẽ được áp dụng. Vì vậy, nếu tôi có kích thước yêu cầu mặc định là 512K, 256M sẽ không bao giờ được áp dụng vì tất cả các yêu cầu được khớp thông qua mẫu điều khiển trước ~ \.php
.
Tôi có đúng trong trường hợp này không và nếu có, những gì có thể được định cấu hình để khách truy cập không thể tải lên bất cứ thứ gì trừ khi họ tải lên admin/upload
?