Doküman

Linux’ta Nginx Sunucusu Dosya Yükleme Boyutu Nasıl Sınırlandırılır

Bu yazıda, Nginx’te kullanıcı dosya yükleme boyutunun nasıl sınırlandırılacağını açıklayacağız. Dosya yükleme boyutunu kısıtlamak, bazı hizmet reddi (DOS) saldırı türlerini ve diğer birçok sorunu önlemek için faydalıdır.

Varsayılan olarak, Nginx’in dosya yüklemelerinde 1 MB sınırı vardır. Dosya yükleme boyutunu ayarlamak için Nginx’in ngx_http_core_module modülünün bir parçası olan client_max_body_size yönergesini kullanabilirsiniz. Bu yönerge http, sunucu veya konum bağlamında ayarlanabilir.

“Content-Length” istek başlığı alanında belirtilen, istemci istek gövdesinin izin verilen maksimum boyutunu ayarlar. İşte /etc/nginx/nginx.conf dosyasındaki sınırın 100 MB’a çıkarılmasına bir örnek.

Tüm sunucu bloklarını (sanal ana bilgisayarlar) etkileyen http bloğunu ayarlayın.

http {
    ...
    client_max_body_size 100M;
}    

Belirli bir siteyi/uygulamayı etkileyen sunucu bloğunu ayarlayın.

server {
    ...
    client_max_body_size 100M;
}

Bir site/uygulama altındaki belirli bir dizini (yüklemeleri) etkileyen konum bloğunu ayarlayın.

location /uploads {
    ...
    client_max_body_size 100M;
} 

Dosyayı kaydedin ve aşağıdaki komutu kullanarak son değişiklikleri uygulamak için Nginx web sunucusunu yeniden başlatın.

# systemctl restart nginx       #systemd
# service nginx restart         #sysvinit

Değişiklikleri kaydettikten ve HTTP sunucusunu yeniden başlattıktan sonra, bir istekteki boyut yapılandırılmış 100MB değerini aşarsa, istemciye 413 (İstek Varlığı Çok Büyük) hatası döndürülür.

Not: Tarayıcıların bazen bu hatayı doğru bir şekilde görüntüleyemeyebileceğini unutmamalısınız. Ve bir değerin (boyut) 0 olarak ayarlanması, boyut kontrolünü devre dışı bırakır.

Yazının orijinalini buradan okuyabilirsiniz.