Büyük dosya yüklemelerini tek bir konuma etkinleştirmek istiyorum ve bu konum daha sonra başka bir yere yeniden yazılır. Yeniden yazmanın diğer konfigürasyonları sıfırladığı görülüyor.Nginx'te rewrite ve client_max_body_size'yi nasıl birleştirebilirim?
Benim Yapılandırma: Ben location
çıkıp server
içine client_max_body_size taşırsanız
server {
listen 80;
server_name example.com;
root /var/www;
index index.php;
# this location requires large file upload
location /upload {
client_max_body_size 512M;
rewrite ^(.*)$ /index.php?request=$1 last;
}
# all other locations
location/{
rewrite ^(.*)$ /index.php?request=$1 last;
}
# pass the PHP scripts to FPM
location ~ \.php$ {
include /etc/nginx/includes/php;
}
}
, o zaman çalışır.
Hem location /upload
AND location ~ \.php$
'a koyarsam, o zaman çalışır. Ancak, başka konumların büyük dosyaları karşıya yüklemesini istemiyorum.
Doğrudan PHP'ye location /upload
numaralı telefondan doğrudan yönelebileceğimi düşünüyordum, ancak yeniden yazmayı çalıştırdığımda başka bir yere bakacaktır. Bu, php betikleri için iki ayrı yere sahip olmak zorunda kalacağım anlamına mı geliyor? Yeniden yazdırıldıktan sonra client_max_body_size
'un diğer konumlardan korunmasının bir yolu var mı?
Müthiş! Birincisi çalışıyor gibi görünüyor! Yönlendirmenin bir döngüye girmesine neden olacağını düşünmüştüm ama sanırım fcgi_pass'a vuran şey, onu sonlandıran şeyde. – DAB
aslında onu geri alıyorum. Hala maksimum beden bedenimi php konumunda tuttum. Hata ayıklama günlüğünü açtım ve "fastcgi_pass" öğesinin dikkate alınmadığı php içeriklerini görüyor ve yeniden yazma işlemi tüm koşulları yeniden test etmeye başladı. İşte hata ayıklama günlüğü: https://gist.github.com/macdabby/13832f4257a73f82c01c. Paramlar ile bir şeyler deneyeceğim, ama bu da işe yaramıyordu. – DAB