Günlük web isteği hacminize ve sunucu disk boyutunuza göre log büyümesini simüle edin; diskin %100 dolup MySQL ve web servislerini çökertmesini önleyen logrotate ve tamponlama ayarlarını oluşturun.
/var/log/nginx/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
postrotate
[ -s /run/nginx.pid ] && kill -USR1 `cat /run/nginx.pid`
endscript
}Linux VDS veya bulut sunucusu kullanan web yöneticilerinin karşılaştığı en yaygın çökme nedenlerinden biri,/var/log/nginx/access.log veya systemd günlüklerinin sessizce büyüyerek kök disk bölümünü (%100) doldurmasıdır. Disk tamamen dolduğunda veritabanı (MySQL/PostgreSQL) yeni veri veya kilit dosyası yazamayarak anında çöker ve web siteniz erişilemez hale gelir.
Nginx açık olan log dosyalarının dosya tanımlayıcılarını (file descriptor) bellekte tutar. Dosyayı doğrudan silmek veya taşımak diskte yer açmaz çünkü Nginx silinmiş dosyaya yazmaya devam eder. Doğru yöntem, logrotate sonrasındakill -USR1 sinyali göndererek Nginx'in mevcut bağlantıları kesmeden yeni log dosyasını açmasını sağlamaktır.
Her HTTP isteğinde diske anlık yazma yapmak, özellikle yoğun ziyaret alan sitelerde NVMe disk I/O döngülerini gereksiz yere meşgul eder.buffer=32k flush=5s parametresi, log satırlarını önce 32 KB bellek tamponunda toplayıp yalnızca 5 saniyede bir topluca diske yazarak disk gecikmelerini büyük ölçüde azaltır.