Nginx önbellekleme (caching) nasıl yapılır? (Statik içerik için)

Nginx, yüksek performanslı bir web sunucusu ve ters proxy sunucusu olarak bilinir. Statik içeriklerin hızlı bir şekilde sunulması için önbellekleme kullanmak, hem sunucu yükünü azaltır hem de kullanıcı deneyimini iyileştirir. Nginx üzerinde statik içeriklerin önbelleklenmesi, yapılandırma dosyası aracılığıyla gerçekleştirilir. Bu süreç, önbellek ayarlarının doğru bir şekilde yapılmasıyla başlar.

Nginx Yapılandırma Dosyası

Nginx yapılandırma dosyası genellikle `/etc/nginx/nginx.conf` veya bulunan sunucu ayarlarının bulunduğu sanal host dosyalarında bulunur. Öncelikle, yapılandırma dosyasını düzenlemek için uygun bir metin düzenleyicisi ile açmak gereklidir. Yapılandırma dosyasında, önbellek ayarları yapılacak alan genellikle `server` veya `location` blokları içindedir.

Statik İçeriklerin Belirlenmesi

Statik içerikler, genellikle resimler, CSS dosyaları ve JavaScript dosyaları gibi sıklıkla değişmeyen dosyalardır. Bu tür içeriklerin önbelleklenmesi, Nginx’e hangi içeriklerin önbelleğe alınacağını belirtmek için `location` bloğu içinde tanımlanabilir. Örneğin, CSS ve JavaScript dosyaları için aşağıdaki gibi bir yapılandırma kullanılabilir:

“`nginx
location ~ \.(css|js|jpg|jpeg|png|gif|ico)$ {
expires 30d;
access_log off;
add_header Cache-Control “public, max-age=2592000”;
}
“`

Burada `expires` direktifi, içeriğin ne süreyle önbellekte tutulacağını belirler. Yukarıdaki örnekte, içerik 30 gün boyunca geçerli olacaktır. `access_log off` ifadesi, önbelleğe alınan içerikler için erişim kaydının tutulmamasını sağlar. `add_header Cache-Control` ise, HTTP yanıt başlığına önbellek kontrol bilgisi ekler.

Ön Bellek Dizininin Tanımlanması

Nginx, önbellek dosyalarının saklanacağı bir dizin oluşturulmasına ve yapılandırma dosyasında belirlenmesine ihtiyaç duyar. Genellikle `/var/cache/nginx` dizini bu amaçla kullanılır. Aşağıdaki gibi bir dizin oluşturulabilir:

“`bash
sudo mkdir -p /var/cache/nginx
sudo chown -R www-data:www-data /var/cache/nginx
“`

Yukarıdaki komut, gerekli dizini oluşturur ve Nginx kullanıcılarına uygun izinleri verir. Ardından, yapılandırma dosyası içinde önbellek dizini belirtilmelidir. Aşağıdaki örnek, önbellek dizininin ayarlanmasını göstermektedir:

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

Bu ifadenin parametreleri şu şekildedir:

– `levels=1:2`: Önbelleğin dosya seviyelerini tanımlamak için kullanılır.
– `keys_zone=my_cache:10m`: 10 megabyte’lık bir anahtar alanı (zone) tanımlar.
– `max_size=1g`: Ön belleğin maksimum boyutunu 1 gigabyte olarak belirler.
– `inactive=60m`: 60 dakika boyunca kullanılmayan içerikler silinir.
– `use_temp_path=off`: Geçici dosyaların kullanımını devre dışı bırakır.

Önbelleğin Kullanılması

Önbelleğin ayarlanmasının ardından, Nginx konfigürasyonu, belirli bir içerik için önbellek kullanımını etkinleştirecek şekilde güncellenmelidir. Örneğin, aşağıdaki gibi bir `location` bloğu eklenebilir:

“`nginx
location /static/ {
proxy_cache my_cache;
proxy_pass http://backend;
proxy_cache_valid 200 1h;
}
“`

Bu yapılandırmada `proxy_cache` direktifi, daha önce tanımlanan `my_cache` önbellek alanını kullanmaktadır. `proxy_pass` ifadesi, istekleri hangi sunucuya yönlendireceğini belirler. `proxy_cache_valid` ise, HTTP 200 yanıtları için önbelleğin geçerlilik süresini 1 saat olarak ayarlar.

Önbellek Kontrolü

Önbelleğin düzgün çalışıp çalışmadığını kontrol etmek için, HTTP yanıt başlıkları incelenmelidir. `curl` komutu kullanılarak yanıt başlıkları görüntülenebilir. Aşağıdaki örnek, bir dosyanın önbellekten alınıp alınmadığını kontrol etmek için kullanılabilir:

“`bash
curl -I http://example.com/static/style.css
“`

Bu komut ile dönen yanıtta `X-Cache` başlığı, önbellekten gelme durumunu belirtir.

Sorun Giderme

Önbellekleme yapılandırması sırasında sorunlar yaşanabilir. Bu tür durumlarla karşılaşıldığında, Nginx hata logları incelemek için önemli bir kaynaktır. Hataların kaydedildiği dosya genellikle `/var/log/nginx/error.log` dizinindedir. Burada kaydedilen hatalar, yanlış yapılandırmalar veya erişim sorunları hakkında bilgi verebilir.

Performans İzleme

Önbellekleme yapılandırıldıktan sonra, sunucu performansının izlenmesi önemlidir. Nginx içindeki istatistik modülü veya harici araçlar kullanılarak, önbelleğin ne derece etkili olduğu gözlemlenebilir. Bu tür araçlar, önbelleğin yanı sıra sunucu yanıt sürelerini ve istemci sayısını takip etmeye olanak tanır.

Yukarıda belirtilen adımlar, Nginx üzerinde statik içeriklerin nasıl önbelleklenebileceği konusunda temel bir rehber sunmaktadır. Doğru yapılandırma ile, statik içeriklerin sunumu hızlandırılabilir ve sunucu kaynakları daha verimli bir şekilde kullanılabilir.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz

SON İÇERİKLER

İLGİNİZİ ÇEKEBİLİR