Web sunucunuzda Nginx kullanıyorsanız, büyük dosyalar yüklemeye çalışırken 413 Request Entity Too Large hatasıyla karşılaşmış olabilirsiniz. Bu hata, genellikle Nginx'in varsayılan olarak 1 MB olan client_max_body_size sınırını aştığınızda ortaya çıkar. Örneğin, 10 MB'lık bir PDF veya 50 MB'lık bir video yüklemeye çalışırken bu hatayı görmeniz olasıdır. Neyse ki çözümü oldukça basit: sadece ilgili ayarı yapılandırmanız yeterli.
Hatanın Kaynağını Anlayın
Nginx, istemciden gelen isteklerin gövde boyutunu kontrol eder. Eğer bu boyut client_max_body_size değerini aşarsa, doğrudan 413 hatası döndürür. Bu ayar, Nginx'in ana yapılandırma dosyası olan nginx.conf içinde, belirli bir server bloğunda veya location bloğunda tanımlanabilir. Hangi seviyede tanımlandığına bağlı olarak, ayarı değiştirmeniz gerekebilir.
client_max_body_size Ayarını Değiştirin
İlk adım olarak Nginx yapılandırma dosyasını açın. Genellikle /etc/nginx/nginx.conf veya /etc/nginx/sites-available/default yolunda bulunur. Dosyayı bir metin editörüyle açtıktan sonra, aşağıdaki gibi bir satır arayın:
client_max_body_size 1M;Eğer bu satır yoksa, eklemeniz gerekir. Örneğin, 100 MB'a kadar dosya yüklemeye izin vermek istiyorsanız, satırı şu şekilde değiştirin:
client_max_body_size 100M;Server Bloğu İçinde Ayarlama
Ayarı yalnızca belirli bir site için değiştirmek istiyorsanız, ilgili server bloğunun içine aynı satırı ekleyin. Örneğin:
server { listen 80; server_name hosting.example.com; client_max_body_size 100M; ... }Location Bloğu İçinde Ayarlama
Daha da spesifik olmak isterseniz, belirli bir URL yolu için ayrı ayrı sınırlar belirleyebilirsiniz. Örneğin, /uploads dizini için 200 MB'a izin vermek:
location /uploads { client_max_body_size 200M; }Nginx'i Test Edip Yeniden Başlatın
Yapılandırma dosyasında değişiklik yaptıktan sonra, herhangi bir sözdizimi hatası olup olmadığını kontrol edin:
sudo nginx -tEğer test başarılıysa, Nginx'i yeniden başlatın:
sudo systemctl restart nginxArtık dosya yüklemeyi tekrar deneyebilirsiniz.
PHP-FPM ile Uyumluluk
Eğer PHP kullanan bir uygulama çalıştırıyorsanız, PHP'nin de kendi yükleme limitleri olduğunu unutmayın. php.ini dosyasındaki upload_max_filesize ve post_max_size ayarlarını da kontrol edin. Genellikle aynı değerleri vermek iyi bir uygulamadır. Örneğin:
upload_max_filesize = 100M post_max_size = 100MDeğişikliklerin ardından PHP-FPM'yi yeniden başlatmayı unutmayın.
Son Kontroller ve İpuçları
Bazı durumlarda, ters proxy veya CDN kullanıyorsanız, onların da benzer sınırları olabilir. Ayrıca, client_body_buffer_size ayarını da büyütmek performans açısından faydalı olabilir. Ancak unutmayın, çok yüksek değerler sunucu kaynaklarını zorlayabilir. Genellikle 10 MB ile 100 MB arası değerler yeterli olacaktır. Bu ayarları yaptıktan sonra 413 hatasını bir daha görmemeniz gerekir.