Sunucu Yönetiminde Nginx Cache Kodları
Sunucu performansını artırmak ve trafik yoğunluğunu yönetmek adına sıkça tercih edilen tekniklerden biri de önbellekleme (caching) uygulamalarıdır. Nginx, yüksek performanslı ve esnek yapısıyla önbellekleme işlemleri için ideal bir araçtır. Ancak, doğru yapılandırmalar ve kodlar olmadan, hem sistem kaynaklarınız boşa harcanabilir hem de kullanıcı deneyimi olumsuz etkilenebilir. Bu nedenle, Nginx üzerinde cache yönetimini detaylandırmak ve pratik kod örnekleriyle anlatmak faydalı olacaktır.
İlk olarak, temel önbellekleme ayarları için Nginx yapılandırma dosyanıza şu satırları ekleyebilirsiniz:
12
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m max_size=1g;
Burada,
/var/cache/nginx: önbelleğin saklanacağı dizin,
levels=1:2: dizin yapısının katman sayısı,
keys_zone=my_cache:10m: önbellek anahtarlarının tutulduğu alan ve bellek boyutu,
inactive=60m: 60 dakika aktif olmayan içeriklerin önbellekten silineceği süre,
max_size=1g: önbelleğin toplam maksimum boyutu.
İkinci aşamada, sunucu bloklarınızda cache kullanımı için şu ayarları uygulayabilirsiniz:
12345678
location / {
proxy_cache my_cache;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
proxy_pass http://backend_server;
add_header X-Cache-Status $upstream_cache_status;
}
Burada,
proxy_cache: belirli cache alanını kullanmak,
proxy_cache_valid: farklı HTTP durum kodları için önbellek geçerlilik süreleri,
add_header: önbellek durumu hakkında bilgi verir, bu da debugging veya analizlerde faydalı olur.
Son olarak, cache temizliği veya güncellemeleri için belirli URL'lere özel cache bypass veya refresh kodları da eklenebilir:
12345
location /api/refresh_cache/ {
proxy_cache_bypass $arg_refresh;
proxy_pass http://backend_server/refresh;
}
Bu yapı, belirli API çağrılarıyla cache'i geçici olarak devre dışı bırakmak veya yenilemek için kullanılabilir. Ayrıca, cache dizinine düzenli olarak bakım yapmak veya gerekirse manuel temizleme komutlarıyla önbelleği sıfırlamak da önemlidir.
Tüm bu kodlar, sunucu ve uygulama ihtiyaçlarına göre özelleştirilerek yüksek verimlilik ve düşük gecikme süreleri sağlayacak şekilde yapılandırılabilir. Nginx cache yönetimi, doğru uygulandığında, hem sunucu yükünü azaltır hem de kullanıcı deneyimini iyileştirir.