Nginx ve Önbellekleme
Nginx, yüksek performanslı bir web sunucusu olup, statik içerik sunma, ters proxy, yük dengelemesi ve önbellekleme gibi birçok işlevi destekler. Önbellekleme, web sayfalarının daha hızlı yüklenmesini sağlar ve sunucu üzerindeki yükü azaltır. Nginx, isteklere yanıt verirken belirli içerikleri önbelleğe alarak bu süreci optimize eder. Ancak, bazı durumlarda önbelleğe alınmış içeriğin güncellenmesi veya silinmesi gerektiğinde önbellek temizleme işlemi (cache purging) devreye girer. Bu işlem, dosyaların önbellekten kaldırılması ve güncel içeriklerin yeniden sunulması için kullanılır.
Önbellek Temizleme Yöntemleri
Nginx üzerinde önbellek temizlemek için birkaç yöntem mevcuttur. Bu yöntemlerden bazıları şunlardır:
1. URL Temelli Temizleme: İçerik URL’lerine göre belirli önbellek dosyalarını kaldırmak.
2. Tam Öncelik Silme: Belirli bir önbellek dizininin tamamen silinmesi.
3. Dinamik Temizleme: Belirli bir süre aralığında içeriğin otomatik olarak kaldırılması için yapılandırma ayarları.
Nginx Konfigürasyonu
Nginx üzerinde önbellek yönetimi ve geçerli içeriği görüntülemek için uygun konfigürasyon ayarlarının yapılması önemlidir. Aşağıda, önbellek temizleme işlemi için gerekli ayarlar ve örnek yapılandırma bulunmaktadır.
Nginx konfigürasyon dosyası genellikle `/etc/nginx/nginx.conf` veya sunucuya özel bir dosyada bulunur. Önbellek yapılandırması, genellikle `http` bloğunda yer alır:
“`nginx
http {
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend;
proxy_cache my_cache;
proxy_cache_bypass $arg_no_cache;
add_header X-Cache-Status $upstream_cache_status;
}
}
}
“`
Bu konfigürasyon, bir önbellek alanı tanımlamakta ve belirli bir URL içeriği sunulurken önbelleğin kullanılmasına olanak sağlamaktadır.
Önbellek Temizleme için ‘PURGE’ Yöntemi
Nginx, varsayılan olarak “purge” işlemi desteklememektedir. Ancak, “PURGE” yöntemi ile önbelleği temizlemek için bir izin ayarı yapmak gereklidir. Bunun için uygun bir konfigürasyon eklemek önemlidir. Aşağıdaki kod parçası, “PURGE” isteğine izin veren bir yapılandırma örneği sunmaktadır:
“`nginx
location ~ /purge(/.) {
proxy_cache_purge my_cache $1;
}
“`
Bu konfigürasyon, `/purge` ile başlayan URL’lere gelen isteklerin önbellekten belirli kaynakları kaldırmasına olanak sağlar.
Cache Purge Komutunu Kullanma
Nginx sunucusunda önbellek temizleme işlemi, önbellek klasörü üzerinde belirli dosyaların silinmesi veya bir HTTP isteği ile gerçekleştirilir. Aşağıdaki komut, terminal veya HTTP istemcisi üzerinden kullanılabilir.
“`bash
curl -X PURGE http://example.com/path_to_resource
“`
Bu komut, belirtilen URL’dekini önbellekten temizlemek için kullanılacaktır.
Otomatik Önbellek Temizleme
Otomatik önbellek temizleme, belirli bir zaman diliminde içeriklerin stale (eski) hale geldiği durumlar için önerilen bir yöntemdir. Nginx, “inactive” ayarı ile belirlenen süre sonunda kullanılmayan önbelleği otomatik olarak kaldırma yeteneğine sahiptir. Aşağıdaki örnek, 60 dakika boyunca kullanılmayan önbelleği silmek için yapılandırılmıştır:
“`nginx
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m;
“`
Sonuç
Nginx üzerinde önbellek temizleme işlemi, hem performans hem de güncel içerik sağlama açısından kritik bir işlevdir. Yapılandırma ayarları düzgün bir şekilde yapıldığında, “PURGE” komutları ve otomatik temizlik işlemleri sayesinde web sunucusu verimli bir şekilde çalıştırılabilir. Önbellek yönetimi, web uygulamalarının hızını ve yanıt süresini artırarak, kullanıcı deneyimini iyileştirmektedir.