MeoHost Logo
Menü
BilgiMerkezi
Bilgi Merkezi/Web Sunucuları/Nginx Cache Yapılandırması

Nginx Cache Yapılandırması

Web Sunucuları19.02.2026Ahmet Yılmaz7 dk okuma

Nginx cache yapılandırması, web sunucusu tarafından sunulan içeriklerin geçici olarak depolanarak tekrar istenildiğinde daha hızlı erişilmesini sağlayan bir optimizasyon tekniğidir. Bu, sunucu üzerindeki yükü azaltır, yanıt sürelerini iyileştirir ve kullanıcı deneyimini önemli ölçüde artırır. Nginx'in esnek yapılandırma yetenekleri sayesinde, çeşitli önbellekleme stratejileri uygulanabilir.

Nginx Cache Yapılandırması

Nginx Cache Yapılandırması

Nginx Cache Nedir?

Nginx cache, web sunucusunun sıkça erişilen statik ve dinamik içerikleri (resimler, CSS dosyaları, JavaScript dosyaları, HTML sayfaları vb.) bellekte veya disk üzerinde geçici olarak saklamasıdır. Bir kullanıcı bir web sayfasını veya kaynağını talep ettiğinde, Nginx öncelikle bu içeriğin önbellekte olup olmadığını kontrol eder. Eğer içerik önbellekte bulunuyorsa, sunucudan tekrar alınmak yerine doğrudan kullanıcıya gönderilir. Bu işlem, sunucunun işlem gücünden tasarruf sağlar ve yanıt sürelerini milisaniyeler seviyesinde kısaltır. Nginx'in önbellekleme mekanizması, HTTP protokolünün standartlarına uygun olarak tasarlanmıştır ve tarayıcı önbelleği ile sunucu tarafı önbelleği olmak üzere iki ana türde işlev görür. Sunucu tarafı önbellekleme, özellikle yüksek trafikli web siteleri için kritik öneme sahiptir.

Nginx Cache Nasıl Çalışır?

Nginx'in önbellekleme mekanizması, belirli direktifler aracılığıyla yapılandırılır ve birkaç adımdan oluşur:

  1. İstek Alınması: Nginx, bir istemciden (tarayıcı) gelen HTTP isteğini alır.
  2. Önbellek Kontrolü: Nginx, isteğin karşılığı olan içeriğin önbellekte mevcut olup olmadığını kontrol eder. Bu kontrol, önbellek anahtarına (genellikle URL ve ilgili başlıklar) göre yapılır.
  3. Önbellekten Yanıt Verme (Cache Hit): Eğer içerik önbellekte bulunuyorsa (cache hit), Nginx bu içeriği doğrudan istemciye gönderir. Bu durumda, sunucu tarafında herhangi bir işleme veya dosya okuma işlemi yapılmaz, bu da süreci son derece hızlı hale getirir.
  4. Önbelleğe Alma ve Yanıt Verme (Cache Miss): Eğer içerik önbellekte bulunmuyorsa (cache miss), Nginx isteği arka uç sunucusuna (upstream server) iletir. Arka uç sunucusundan gelen yanıtı alır, bu yanıtı istemciye gönderir ve aynı zamanda yapılandırmaya bağlı olarak bu yanıtı önbelleğe depolar.
  5. Önbellek Ayarlarının Yönetimi: Nginx, önbelleğe alınan verilerin ne kadar süreyle saklanacağını (TTL - Time To Live), hangi kriterlere göre önbelleğe alınacağını ve önbelleğin nasıl temizleneceğini belirten direktifleri kullanır. Bu direktifler, önbelleğin etkinliğini ve güncelliğini yönetmek için kullanılır.
  6. Önbellek Anahtarının Oluşturulması: Önbellek anahtarı, önbelleğe alınacak içeriği benzersiz şekilde tanımlayan bir kombinasyondur. Genellikle isteğin URL'si, kullanılan HTTP metodu ve belirli başlıklar (örn. 'Accept-Encoding') bu anahtarın bir parçasıdır.

Bu süreç, özellikle tekrarlanan isteklerde sunucu kaynaklarını minimumda kullanarak performansı maksimize eder.

Nginx Cache Türleri ve Yapılandırma Seçenekleri

Nginx, çeşitli önbellekleme ihtiyaçlarını karşılamak için farklı önbellekleme mekanizmaları ve yapılandırma seçenekleri sunar:

  • Proxy Cache (proxy_cache): Nginx'i bir ters proxy olarak kullanırken, arka uç sunucularından alınan yanıtları önbelleğe almak için kullanılır. Bu, en yaygın kullanılan Nginx önbellekleme türüdür.
  • FastCGI Cache (fastcgi_cache): Nginx'in FastCGI protokolü aracılığıyla PHP-FPM gibi uygulamalarla iletişim kurduğu durumlarda kullanılır. Dinamik olarak oluşturulan içerikleri önbelleğe almak için etkilidir.
  • SCGI Cache (scgi_cache): SCGI protokolü kullanan uygulamalar için benzer bir önbellekleme mekanizması sağlar.
  • uWSGI Cache (uwsgi_cache): uWSGI protokolü kullanan uygulamalar için önbellekleme imkanı sunar.

Her önbellekleme türü, kendine özgü direktiflere sahiptir. Örneğin, proxy_cache için proxy_cache_path, proxy_cache_key, proxy_cache_valid gibi direktifler kullanılırken, fastcgi_cache için fastcgi_cache_path, fastcgi_cache_key, fastcgi_cache_valid gibi direktifler kullanılır. Bu direktifler, önbellek dizininin konumu, önbellek anahtarının nasıl oluşturulacağı, önbelleğin geçerlilik süresi ve önbelleğe alınacak yanıt kodları gibi kritik ayarları belirler.

Nginx Proxy Cache Yapılandırma Rehberi

Nginx proxy cache'i yapılandırmak için aşağıdaki adımlar izlenir:

  1. Önbellek Dizininin Tanımlanması: http bloğu içinde veya server bloğundan önce proxy_cache_path direktifi ile önbelleğin disk üzerinde saklanacağı dizin, boyutu ve diğer parametreler tanımlanır.
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;
        
    • /var/cache/nginx: Önbellek dosyalarının saklanacağı dizin.
    • levels=1:2: Önbellek dizin yapısını belirler (performans için önemlidir).
    • keys_zone=my_cache:10m: Önbellek anahtarlarının saklanacağı paylaşımlı belleği (shared memory zone) tanımlar. my_cache zone'un adı, 10m ise boyutu.
    • max_size=10g: Önbelleğin maksimum boyutunu belirtir.
    • inactive=60m: Belirtilen süre boyunca erişilmeyen dosyaların önbellekten silinmesini sağlar.
    • use_temp_path=off: Geçici dosyaların kullanılmasını engeller, bu da I/O işlemlerini azaltabilir.
  2. Önbellek Kullanımının Aktif Edilmesi: server veya location bloğu içinde proxy_cache direktifi ile önbellekleme aktif edilir ve keys_zone ile tanımlanan zone adı belirtilir.
    location / {
        proxy_pass http://backend_server;
        proxy_cache my_cache;
        proxy_cache_valid 200 302 10m;
        proxy_cache_valid 404 1m;
        proxy_cache_key "$scheme$request_method$host$request_uri";
        add_header X-Cache-Status $upstream_cache_status;
    }
        
  3. Önbellek Geçerlilik Süresinin Belirlenmesi: proxy_cache_valid direktifi ile farklı HTTP durum kodları için önbellek geçerlilik süreleri ayarlanır.
  4. Önbellek Anahtarının Tanımlanması: proxy_cache_key direktifi ile önbelleğe alınacak içeriği benzersiz şekilde tanımlayan anahtar oluşturulur.
  5. Önbellek Durumunun İzlenmesi: add_header X-Cache-Status $upstream_cache_status; ile yanıt başlığına önbellek durumu (HIT, MISS, EXPIRED, etc.) eklenerek hata ayıklama kolaylaştırılır.

Bu yapılandırma, Nginx'in gelen istekleri önbellekten karşılamasını sağlayarak performans artışı sunar.

HTTP/2 Yapılandırması ve Optimizasyonlar

Nginx, HTTP/2 protokolünü destekleyerek daha verimli veri aktarımı sağlar. HTTP/2, geleneksel HTTP/1.1'e göre çoklu istekleri tek bir bağlantı üzerinden multiplexing (çoklama) yeteneği sayesinde daha hızlı yükleme süreleri sunar. Nginx'te HTTP/2'yi etkinleştirmek için listen direktifine http2 parametresi eklenir ve SSL/TLS sertifikası zorunlu hale gelir. Performansı daha da artırmak için gzip sıkıştırma ve tarayıcı önbellekleme başlıkları da yapılandırılmalıdır.

Nginx Gzip Sıkıştırma Yapılandırması

Gzip sıkıştırma, sunucu tarafından gönderilen verilerin boyutunu küçülterek bant genişliği kullanımını azaltır ve yükleme sürelerini iyileştirir. Nginx'te gzip'i etkinleştirmek için http bloğunda aşağıdaki direktifler kullanılır:

gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

Bu ayarlar, metin tabanlı dosyaların (HTML, CSS, JavaScript, JSON vb.) sıkıştırılmasını sağlar.

Nginx Tarayıcı Önbellekleme Yapılandırması

Tarayıcı önbellekleme, istemci tarayıcısının tekrar erişilebilecek kaynakları yerel olarak saklamasını sağlar. Bu, Cache-Control ve Expires başlıkları aracılığıyla kontrol edilir. Belirli dosya türleri için uzun geçerlilik süreleri belirlemek, tekrarlanan ziyaretlerde performansı önemli ölçüde artırır.

location ~* \.(css|js|jpg|jpeg|png|gif|ico|svg)$ {
    expires 1y;
    add_header Cache-Control "public";
}

Bu yapılandırma, resimler, CSS ve JavaScript dosyaları gibi statik varlıkların bir yıl boyunca tarayıcı önbelleğinde saklanmasını sağlar.

Nginx SSL/TLS Yapılandırması

Güvenli bir web sitesi için SSL/TLS sertifikası kullanımı zorunludur. Nginx'te SSL/TLS'yi etkinleştirmek için listen 443 ssl; direktifi kullanılır ve sertifika ile özel anahtar dosyalarının yolları belirtilir. Ayrıca, güncel güvenlik standartlarına uyum sağlamak için SSL/TLS protokol sürümleri ve şifreleme algoritmaları da dikkatlice yapılandırılmalıdır.

Nginx Cache Yapılandırmasında Sık Yapılan Hatalar ve Çözümleri

Nginx cache yapılandırmasında karşılaşılabilecek bazı yaygın hatalar ve çözümleri şunlardır:

  • Yanlış Dizin İzinleri: Nginx'in önbellek dosyalarını yazabileceği dizin izinlerinin doğru ayarlanmaması. Çözüm: Nginx çalışan kullanıcısının (genellikle www-data veya nginx) önbellek dizini üzerinde yazma iznine sahip olduğundan emin olunmalıdır.
  • Yanlış Önbellek Anahtarı: Önbellek anahtarının (proxy_cache_key) doğru tanımlanmaması, farklı içeriklerin aynı önbellek girdisiyle ilişkilendirilmesine neden olabilir. Çözüm: URL, isteğin metodu ve host gibi benzersiz tanımlayıcıları içeren kapsamlı bir anahtar kullanılmalıdır.
  • Önbellek Geçerlilik Süresinin Yanlış Ayarlanması: Dinamik içeriklerin çok uzun süre önbellekte tutulması güncel olmayan verilerin sunulmasına yol açabilir. Çözüm: İçeriğin doğasına göre uygun proxy_cache_valid süreleri belirlenmelidir.
  • Önbellek Temizleme Sorunları: Önbelleğe alınmış verilerin manuel olarak veya otomatik olarak temizlenmemesi. Çözüm: inactive parametresi doğru ayarlanmalı veya gerektiğinde proxy_cache_purge modülü gibi çözümler kullanılmalıdır.
  • use_temp_path=off Hatası: Bu ayar bazı durumlarda disk I/O hatalarına neden olabilir. Çözüm: Bu parametreyi devre dışı bırakmak veya geçici dizinleri farklı bir diskte barındırmak gerekebilir.

Teknik Özellikler ve Standartlar

Nginx önbellekleme mekanizması, HTTP/1.0 ve HTTP/1.1 protokol standartlarına tam uyumluluk gösterir. proxy_cache direktifi, RFC 2616 ve sonraki HTTP revizyonlarındaki önbellekleme kurallarını uygular. Önbellek anahtarı oluşturulurken kullanılan değişkenler, RFC 7230 ve RFC 7231'de tanımlanan HTTP başlıklarını temel alır. Disk tabanlı önbellekleme, dosya sistemi izinleri ve performansına bağlıdır. Paylaşımlı bellek (shared memory) kullanımı, keys_zone direktifi aracılığıyla POSIX veya System V IPC mekanizmalarını kullanabilir.

2026 Sektör Verileri ve İstatistikler

W3Techs 2026 verilerine göre, Nginx web sunucuları arasında önemli bir pazar payına sahiptir ve performans odaklı projelerde sıklıkla tercih edilmektedir. Statista 2026 raporuna göre, küresel web trafiğinin artmaya devam etmesiyle birlikte, önbellekleme çözümlerinin önemi daha da artacaktır. Cloudflare Radar 2026 verilerine göre, web sitelerinin ortalama yüklenme sürelerinin iyileştirilmesi, kullanıcı memnuniyetini ve dönüşüm oranlarını doğrudan etkilemektedir. Netcraft 2026 araştırmasına göre, modern web mimarilerinde önbellekleme, sunucu yükünü azaltma ve ölçeklenebilirliği artırma açısından kritik bir rol oynamaktadır.

İlgili Konular

Nginx'in sunduğu avantajları daha iyi anlamak için, Apache vs Nginx Hangisi Daha İyi? makalesini inceleyebilirsiniz. Ayrıca, Nginx'i sunucunuza kurmak için Web Sunucusu Kurulumu rehberimize göz atabilirsiniz.

Sık Sorulan Sorular

Nginx Cache Yapılandırması hakkında merak edilenler

Nginx yapılandırmasına add_header X-Cache-Status $upstream_cache_status; direktifini ekleyerek, gelen yanıtlarda önbellek durumunu görebilirsiniz. Bu başlık, isteğin önbellekten mi karşılandığını (HIT), yoksa sunucudan mı alındığını (MISS), önbelleğin süresinin dolduğunu (EXPIRED) veya başka bir durumu mu gösterir.
Genel olarak, statik içerikler (resimler, CSS, JavaScript dosyaları) ve sık değişmeyen dinamik içerikler önbelleğe alınabilir. Ancak, kullanıcıya özel veya sık güncellenen içerikler (örn. alışveriş sepeti içeriği, oturum bilgileri) için önbellekleme genellikle uygun değildir veya özel yapılandırmalar gerektirir. Bu tür içerikler için önbellekleme dışlama kuralları (proxy_cache_bypass) kullanılmalıdır.

Sorunuz burada yok mu?

Canlı destek ekibimiz size yardımcı olmaya hazır.

İletişime Geç
A

Ahmet Yılmaz

İçerik Uzmanı

Web teknolojileri ve hosting çözümleri konusunda uzmanlaşmış içerik yazarı.

Web HostingTeknik Dokümantasyon
Yayın: 19 Şubat 2026
Güncelleme: 13 Şubat 2026
Uzman İçerik
Doğrulanmış Bilgi
Güncel Bilgi