Nginx Cache Konfigürasyonu

Nginx Cache Konfigürasyonu

Nginx Cache Konfigürasyonu bir web sitesinin performansını artırmak ve sunucu yükünü azaltmak amacıyla sıkça başvurulan bir yöntemdir. Bu süreç, statik ve dinamik içeriklerin önbelleğe alınmasını içerir ve doğru yapılandırıldığında sayfa yükleme sürelerini ciddi şekilde azaltabilir. Aşağıda, Nginx Cache konfigürasyonunun nasıl yapılacağı adım adım açıklanmaktadır.

1. Nginx Cache İçin Dizin Oluşturma

Öncelikle, Nginx’in önbellek dosyalarını depolayacağı bir dizin oluşturulması gerekir. Bu dizin genellikle /var/cache/nginx altında oluşturulur.

sudo mkdir -p /var/cache/nginx

Dizine uygun izinler verilmeli ve Nginx kullanıcı grubu bu dizine erişebilir olmalıdır.

sudo chown -R www-data:www-data /var/cache/nginx

Bu adımdan sonra Nginx Cache Konfigürasyonu dediğimiz adım başlar.

2. Cache Yapılandırma Dosyasını Oluşturma

Nginx yapılandırma dosyasında, cache yapılandırmasına yönelik bir bölüm eklemek gerekir. Genellikle bu, nginx.conf dosyasının içinde veya belirli bir site için server bloğu içerisinde yapılır.

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;

  • proxy_cache_path: Cache dosyalarının depolanacağı yolu belirtir.
  • levels=1:2: Cache dosyalarının nasıl organize edileceğini tanımlar.
  • keys_zone=my_cache:10m: Cache anahtarları için bellek ayırır ve bir isim verir.
  • max_size=10g: Cache’in kaplayabileceği maksimum alanı belirtir.
  • inactive=60m: 60 dakika boyunca erişilmeyen cache dosyalarının silineceğini belirtir.
  • use_temp_path=off: Geçici dizin kullanılmaz, doğrudan cache dizinine yazılır.

3. Server Blokunda Cache Kullanımını Tanımlama

Bir server bloğu içinde, cache kullanılacak yerlerin tanımlanması gereklidir. Bu yapılandırma, belirli yollar için cache kullanımı tanımlamayı içerir.

server {
listen 80;
server_name example.com;

location / {
proxy_pass http://backend_server;
proxy_cache my_cache;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504;
add_header X-Proxy-Cache $upstream_cache_status;
}
}

  • proxy_pass: Gelen isteklerin hangi sunucuya iletileceğini belirtir.
  • proxy_cache: Daha önce tanımlanan cache bölgesini kullanır.
  • proxy_cache_valid: Farklı HTTP durum kodları için geçerli olacak cache sürelerini tanımlar.
  • proxy_cache_use_stale: Eski cache içeriklerinin hata durumlarında nasıl kullanılacağını tanımlar.
  • add_header: Yanıtın cache’ten gelip gelmediğini anlamak için başlığa bir gösterge ekler.

4. Cache Kontrolü ve Yönetimi

Nginx cache konfigürasyonu tamamlandığında, cache’in etkinliğini ve doğruluğunu izlemek önemlidir. Bunun için log dosyaları incelenebilir veya yanıt başlıkları kontrol edilebilir. Cache temizleme işlemleri için ise proxy_cache_purge gibi modüller kullanılabilir, ancak bu modülün Nginx ile derlenmesi gerekmektedir.

5. Cache Temizleme (Purge)

Cache temizleme, belirli içeriklerin önbellekten manuel olarak silinmesi gerektiğinde kullanılır. Bu işlem için proxy_cache_purge modülü yapılandırılmalıdır. Örneğin:

location /purge/ {
proxy_cache_purge my_cache "$scheme$request_method$host$request_uri";
}

Bu yapılandırma ile /purge/ yolunu izleyerek belirli cache dosyalarını temizlemek mümkün olur.

6. Nginx’i Yeniden Başlatma

Yapılandırmalar yapıldıktan sonra, Nginx servisinin yeniden başlatılması gerekmektedir:

sudo systemctl restart nginx

Bu işlem, yapılan değişikliklerin geçerli olmasını sağlar.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir