Closed msdundar closed 6 years ago
Nginx’ten geliyor aslında, https://github.com/dokku/dokku/issues/802
Buna baktım. Nginx özelleştirmesi yapılabilir iki yerde:
client_max_body_size 10M;
yapalım. Bu şekilde en azından maksimum 3 MB sınırını aşan 3 MB- 10 MB arası upload'lar (bk. "gerçek çözünürlüklü büyük bir fotoyu upload etmeye çalışan dummy user" sendromu) Rails tarafından bağlamı daha açık verilen bir hata mesajıyla karşılaşır.
10 MB'tan büyük uploadlar için custom 413 sayfası ekleyelim (şu an hepsi 400 şablonu üzerinden yönetiliyor: https://github.com/dokku/dokku/blob/master/plugins/nginx-vhosts/templates/nginx.conf.sigil#L39) Bu sayfada (1) Türkçe ve İngilizce olarak büyük bir dosya upload edilmeye çalışıldığı mesajı görüntülensin (2) uygulamaya geri yönlendirme linki bulunsun.
@ecylmz: Fotolarda 3 MB Rails, 10 MB Nginx sınırı makul. Ama Nokul'da gelecekte öyle rotalar olabilir ki daha büyük dosyaların yüklenmesi gerekebilir. Bu rotalara özel olarak client_max_body_size
"per route" olarak arttırılmalı. Nasılı şurada
@msdundar Böyle bir çözüm kurguladım, uygun mudur?
Bu arada, Nginx default'ı 1 MB olarak görüyorum. Yani mevcut durumda 1-3 MB arası legal uploadların bile kesilmesi gerekiyor?
@ecylmz: Daha önce konuştuğumuz gibi ufaktan Nginx özelleştirmeleri yapmamızın vakti geliyor gibi. Soru şu: bu özelleştirmeleri nerede tutalım? Örneğin bu sorun için tüm nginx şablonuyla oynamak yerine /home/dokku/nokul/nginx.conf.d altına bir ayar atmak yeterli Bu yolla gideceksek ayarlar depoda olmayacak. Yok depoda olsun dersek, nginx.conf.sigil gibi bir dosyayı depo köküne eklememiz gerekecek. Bunu bir düşünelim...
@ecmelkytz'ın dediği problemi aşağıdaki yapılandırmayla çözdük.
echo 'client_max_body_size 10m;' > /home/dokku/ais/nginx.conf.d/upload.conf
chown dokku:dokku /home/dokku/ais/nginx.conf.d/upload.conf
service nginx reload
@roktas hocam nokul için de böyle devam edelim mi? bu şekilde tek seferlik bir yapılandırma ile işi kurtarıyoruz. böylece custom nginx yapılandırmasına da ihtiyaç kalmıyor. custom 413 sayfası isterseniz mecbur nginx.conf.sigil dosyasını depoya eklemek zorunda kalacağız. her dokku sürümü yükseldiğinde de bakıma ihtiyaç duyabilir.
:+1: süper çözüm olmuş bence. depoyu kirletmeye gerek yok. yalnız bunu mutlaka dokümante edelim.
nokul, nokul-develop, kalem, kalem-develop ve ais uygulamalarında upload limiti 10MB olarak ayarlandı.
işlem dokümante edildi: https://github.com/omu/omu/blob/master/doc/dokku.md#maksimum-upload-boyutunu-art%C4%B1rma
Nokul'da belirli bir boyutun üzerinde resim yüklemeye çalıştığımda (örneğin 6MB'lık bir resim), istek daha nokul'a düşmeden Dokku'dan 413 dönüyor.
Şuan için sorun değil, ancak production'da da dokku kullanacaksak daha user-friendly bir hata sayfası dönmesi doğru olur.