CDN Performans Optimizasyonu: Daha Hızlı Küresel Teslimat İçin Tam Kılavuz

Daha hızlı küresel içerik dağıtımı için önbelleğe alma stratejileri, uç bilgi işlem, görüntü optimizasyonu ve çoklu CDN mimarileriyle CDN performansını optimize edin.

E
ECOSIRE Research and Development Team
|16 Mart 20267 dk okuma1.6k Kelime|

Performance & Scalability serimizin bir parçası

Tam kılavuzu okuyun

CDN Performans Optimizasyonu: Daha Hızlı Küresel Teslimat İçin Tam Kılavuz

Gecikme süresindeki her 100 ms'lik iyileşme, e-Ticaret dönüşüm oranlarını %1,1 artırır. Ayda 1 milyon dolar kazanan bir mağaza için bu 100 ms'lik iyileşme, yılda 132.000 dolar ek gelir anlamına gelir. CDN optimizasyonu teknik olarak sahip olunması güzel bir şey değildir; doğrudan bir gelir aracıdır.

Bu kılavuz, web uygulamaları, e-ticaret mağazaları ve ERP sistemleri için CDN mimarisini, önbelleğe alma stratejilerini, uç bilişimi ve performans ayarlamayı kapsar.

Önemli Çıkarımlar

  • Uygun önbellek başlıkları tek başına kaynak sunucu yükünü %60-80 oranında azaltabilir
  • CDN dönüşümleri aracılığıyla görüntü optimizasyonu, sıfır kod değişikliğiyle sayfa ağırlığını %40-60 oranında azaltır
  • Edge bilişim, API mantığını kullanıcılara yaklaştırarak önbelleğe alınan yanıtlar için gecikmeyi 200 ms'den 20 ms'ye düşürür
  • Çoklu CDN stratejileri, küresel hedef kitleler için yük devretme ve coğrafi optimizasyon sağlar

CDN Mimarisinin Temelleri

CDN'ler Nasıl Çalışır?

CDN, kullanıcıya en yakın konumlardaki içeriği önbelleğe alan ve sunan, küresel olarak dağıtılan bir sunucu ağıdır.

User in Tokyo --> CDN Edge (Tokyo, 5ms) --> [Cache HIT] --> Response
User in London --> CDN Edge (London, 5ms) --> [Cache MISS] --> Origin (US-East, +120ms) --> Cache + Response
User in London --> CDN Edge (London, 5ms) --> [Cache HIT] --> Response (subsequent requests)

Neler Önbelleğe Alınır?

İçerik TürüÖnbellek SüresiÖnbellek Kontrolü Başlığı
Statik varlıklar (JS, CSS)1 yıl (değişmez)KOD0
Resimler30 günKOD0
Yazı Tipleri1 yılKOD0
HTML sayfaları (statik)5 dakikaKOD0
API yanıtları (genel)1-5 dakikaKOD0
API yanıtları (özel)Önbelleğe almayınKOD0

Önbellek Kontrol Başlıkları

Next.js Önbellek Yapılandırması

// next.config.ts
const nextConfig = {
  async headers() {
    return [
      {
        source: '/_next/static/:path*',
        headers: [
          {
            key: 'Cache-Control',
            value: 'public, max-age=31536000, immutable',
          },
        ],
      },
      {
        source: '/images/:path*',
        headers: [
          {
            key: 'Cache-Control',
            value: 'public, max-age=2592000',
          },
        ],
      },
    ];
  },
};

Nginx Önbellek Başlıkları

location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff2)$ {
    expires 365d;
    add_header Cache-Control "public, immutable";
    add_header Vary "Accept-Encoding";
}

location ~* \.html$ {
    expires 5m;
    add_header Cache-Control "public, must-revalidate";
}

# API responses - let the application control caching
location /api/ {
    proxy_pass http://backend;
    proxy_cache_bypass $http_authorization;
}

Görüntü Optimizasyonu

Görseller çoğu web sitesinde sayfa ağırlığının %50-70'ini oluşturur. CDN tabanlı görüntü optimizasyonu, oluşturma sırasında görüntü işleme ihtiyacını ortadan kaldırır.

Cloudflare Görüntü Dönüşümleri

<!-- Original: 2.4 MB JPEG -->
<!-- Optimized: 180 KB WebP, properly sized -->
<img
  src="/cdn-cgi/image/width=800,quality=80,format=auto/images/product-hero.jpg"
  alt="Product"
  width="800"
  height="600"
  loading="lazy"
/>

CDN'li Next.js Görüntü Bileşeni

// next.config.ts
const nextConfig = {
  images: {
    loader: 'custom',
    loaderFile: './lib/image-loader.ts',
  },
};

// lib/image-loader.ts
export default function cloudflareLoader({
  src,
  width,
  quality,
}: {
  src: string;
  width: number;
  quality?: number;
}) {
  const params = [`width=${width}`, `quality=${quality || 80}`, 'format=auto'];
  return `/cdn-cgi/image/${params.join(',')}${src}`;
}

Görüntü Optimizasyon Etkisi

MetrikCDN Optimizasyonundan ÖnceCDN Optimizasyonundan Sonra
Ortalama resim boyutu850 KB120 KB
Sayfa ağırlığı (resimler)4,2 MB680 KB
LCP (En Büyük İçerikli Boya)3.8s1.4s
Toplam sayfa yükleme süresi5.2s2.1s

Uç Bilgi İşlem

API Önbelleğe Alma için Cloudflare Çalışanları

// worker.js - Cache API responses at the edge
addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request));
});

async function handleRequest(request) {
  const url = new URL(request.url);

  // Only cache GET requests to public API endpoints
  if (request.method !== 'GET' || !url.pathname.startsWith('/api/public/')) {
    return fetch(request);
  }

  const cache = caches.default;
  const cacheKey = new Request(url.toString(), request);

  // Check cache
  let response = await cache.match(cacheKey);
  if (response) {
    return response;
  }

  // Fetch from origin
  response = await fetch(request);

  // Clone and cache successful responses
  if (response.ok) {
    const cachedResponse = new Response(response.body, response);
    cachedResponse.headers.set('Cache-Control', 'public, max-age=300');
    cachedResponse.headers.set('X-Cache-Status', 'MISS');
    event.waitUntil(cache.put(cacheKey, cachedResponse.clone()));
    return cachedResponse;
  }

  return response;
}

E-Ticaret için Edge Kullanım Örnekleri

Kullanım ÖrneğiGecikme İyileştirmesiUygulama
Ürün kataloğu API'si200 ms - 5 ms5 dakika boyunca uçta önbelleğe alın
Coğrafi konum yönlendirmesi100 ms - 1 msIP aramalı uç çalışan
A/B testi50 ms - 0 msEdge çalışanı varyantı atar
Bot tespiti100ms - 5msBaşlangıç ​​noktasından önce sınır mücadelesi
Fiyat yerelleştirmesi150 ms - 5 msPara birimi dönüştürmeyle uç çalışan

CDN Sağlayıcı Karşılaştırması

ÖzellikBulut parlamasıAWS CloudFronthızlaTavşan CDN
Küresel PoP'lar310+450+80+114+
Ücretsiz katmanCömert1 TB/ay (12 ay)YokYok
Kenar hesaplamaİşçilerLambda@EdgeHesaplama@EdgeKenar Komut Dosyası Yazma
Görüntü optimizasyonuDahiliLambda'yı gerektirirDahiliDahili
WebSocket desteğiEvetEvetEvetEvet
DDoS korumasıDahilAWS Kalkanı (ekstra)DahilTemel
Başlangıç ​​fiyatıÜcretsizKullanım başına ödeme50$/ay1$/ay

Öneri: Çoğu işletme için Cloudflare. Ücretsiz katman cömerttir, uç ağ en büyüğüdür ve Çalışanlar ek altyapı olmadan güçlü uç bilgi işlem sağlar.


Çoklu CDN Stratejileri

Neden Çoklu CDN

Hiçbir CDN her bölgede en iyi performansa sahip değildir. Çoklu CDN stratejisi, kullanıcıları konumlarına göre en iyi performans gösteren CDN'ye yönlendirir:

YaklaşımKarmaşıklıkMaliyetFayda
Birincil + yük devretmeDüşük1,1xGüvenilirlik
Coğrafi yönlendirmeOrta1,3xGecikme optimizasyonu
Performansa dayalı yönlendirmeYüksek1,5xMümkün olan en iyi gecikme

Uygulama

Kullanıcıları en uygun CDN'ye yönlendirmek için DNS düzeyinde yönlendirmeyi kullanın:

User request -> DNS (Cloudflare/Route53)
    |
    +--> US/EU traffic -> Cloudflare (best PoP coverage)
    |
    +--> APAC traffic -> AWS CloudFront (strong APAC presence)
    |
    +--> China traffic -> Alibaba CDN (required for China performance)

Çoğu işletme için, DNS düzeyinde yapılandırılmış yük devretme CDN'sine sahip tek bir CDN (Cloudflare), tam çoklu CDN yönlendirmenin karmaşıklığı olmadan yeterli yedeklilik sağlar.


Yaygın CDN Tuzakları

Tuzak 1: Kimliği Doğrulanmış İçeriği Önbelleğe Alma

Kullanıcıya özel veriler içeren yanıtları asla önbelleğe almayın. A Kullanıcısının B Kullanıcısına sunduğu önbelleğe alınmış yanıt bir güvenlik ihlalidir. Kimliği doğrulanmış tüm API yanıtları için Cache-Control: private, no-store kullanın.

Tuzak 2: Dağıtımlar için Önbellek Bozmanın Göz ardı Edilmesi

Yeni JavaScript veya CSS dağıttığınızda kullanıcılar önbelleğe alınmış eski sürümleri alabilir. Çözümler:

  • İçerik karması: Dosya adına bir karma ekleyin (app.a1b2c3d4.js). Next.js bunu otomatik olarak yapar.
  • Dağıtım sırasında önbellek temizleme: Dağıtım hattınızın bir parçası olarak CDN önbelleğini temizleyin.
  • Sürümlendirilmiş URL'ler: /styles.css yerine /v2/styles.css.

Tuzak 3: Dinamik İçerik için CDN'nin Yanlış Yapılandırması

CDN'niz önbelleğe alınmaması gereken dinamik içeriği (API yanıtları, kullanıcı durumu içeren HTML sayfaları) önbelleğe alıyorsa, eski veya yanlış veriler sunacaksınız. CDN önbellek kurallarınızı düzenli olarak denetleyin ve önbelleğe alma çakışmalarını önlemek için Vary üstbilgilerini kullanın.


Performans Ölçümü

Önemli Web Verileri Hedefleri

Metrikİyiİyileştirme GerekiyorZayıf
LCP (En Büyük İçerikli Boya)<2,5sn2,5-4,0s>4.0s
INP (Sonraki Boyayla Etkileşim)<200ms200-500ms>500ms
CLS (Kümülatif Düzen Kayması)<0,10,1-0,25>0,25

Önbellek Performansını İzleme

# Check CDN cache hit ratio
curl -sI https://example.com/page | grep -i "cf-cache-status\|x-cache\|age"

# Expected output for a cached response:
# cf-cache-status: HIT
# age: 3600

Zaman içindeki önbellek isabet oranını izleyin. Hedef: Statik varlıklar için %85'in üzerinde, dinamik içerik için %50'nin üzerinde.


Sıkça Sorulan Sorular

Kullanıcılarımız tek bir ülkedeyse CDN'ye ihtiyacımız var mı?

Evet ama faydalar değişiyor. Coğrafi gecikme süresinde azalma yerine şunları elde edersiniz: DDoS koruması, SSL sonlandırma yükünün aktarımı, görüntü optimizasyonu ve kaynak sunucu yükünün azaltılması. Tek ülke hedef kitleleri için bile CDN, sunucu maliyetlerini azaltır ve güvenilirliği artırır. Cloudflare ücretsiz katmanı bunu sıfır maliyetli bir iyileştirme haline getiriyor.

Dinamik içerik için önbelleğin geçersiz kılınmasını nasıl ele alırız?

Üç strateji: (1) sık sık değişen içerik için kısa TTL'ler (1-5 dakika), (2) içerik güncellemeleri için etiket bazında temizleme özelliğine sahip önbellek etiketleri, (3) arka planda yeni içerik getirirken önbelleğe alınmış içerik sunan eski, yeniden doğrulama başlıkları. Bağımsız olarak CDN önbelleği için s-maxage ve tarayıcı önbelleği için max-age kullanın.

ERP sistemimiz için CDN kullanmalı mıyız?

CDN, ERP statik varlıkları (JavaScript, CSS, resimler) ve halka açık portallar için faydalıdır. Kimliği doğrulanmış API yanıtlarını veya oturuma bağlı içeriği önbelleğe almayın. ECOSIRE, güvenlik riskleri olmadan en iyi önbelleğe almayı sağlamak için Odoo uygulama hizmetlerimizin bir parçası olarak CDN önbelleğe almayı yapılandırır.

CDN, sunucu tarafı oluşturmayla nasıl etkileşime giriyor?

Next.js SSR sayfaları için CDN'yi, kısa TTL'lerle (1-5 dakika) tam URL'yi (sorgu parametreleri dahil) temel alarak önbelleğe alacak şekilde yapılandırın. Next.js arka planda yenilenirken biraz eskimiş içerik sunmak için stale-while-revalidate kullanın. ISR (Artımlı Statik Yenileme), CDN önbelleğe almayla doğal olarak çalışır.


Sırada Ne Var?

CDN optimizasyonu, yük altında performansı doğrulamak için yük testi ve önbellek isabet oranlarını ve gecikmeyi izlemek için izleme ile doğal olarak eşleşir. Altyapı optimizasyonu yol haritasının tamamı için Küçük işletmeler için DevOps kılavuzumuza bakın.

CDN kurulumu ve performans optimizasyonu danışmanlığı için ECOSIRE ile iletişime geçin.


ECOSIRE tarafından yayınlandı - işletmelerin dünya çapında daha hızlı içerik sunmasına yardımcı oluyor.

E

Yazan

ECOSIRE Research and Development Team

ECOSIRE'da kurumsal düzeyde dijital ürünler geliştiriyor. Odoo entegrasyonları, e-ticaret otomasyonu ve yapay zeka destekli iş çözümleri hakkında içgörüler paylaşıyor.

Performance & Scalability serisinden daha fazlası

Yapay Zeka Aracısı Performans Optimizasyonu: Hız, Doğruluk ve Maliyet Verimliliği

Hızlı mühendislik, önbelleğe alma, model seçimi ve izleme için kanıtlanmış tekniklerle yapay zeka aracısının performansını yanıt süresi, doğruluk ve maliyet açısından optimize edin.

Yapay Zeka Aracılarını Test Etme ve İzleme: Otonom Sistemler için Güvenilirlik Mühendisliği

Birim testi, entegrasyon testi, davranış testi, gözlemlenebilirlik ve üretim izleme stratejilerini kapsayan yapay zeka aracılarının test edilmesine ve izlenmesine yönelik eksiksiz kılavuz.

Web Uygulamaları için Yük Testi Stratejileri: Kırılma Noktalarını Kullanıcılar Bulmadan Bulun

Web uygulamalarını k6, Artillery ve Locust ile test edin. Test tasarımını, trafik modellemeyi, performans temellerini ve sonuç yorumlama stratejilerini kapsar.

E-Ticaret için Mobil SEO: 2026 İçin Tam Optimizasyon Kılavuzu

E-Ticaret siteleri için Mobil SEO kılavuzu. Mobil öncelikli indekslemeyi, Önemli Web Verilerini, yapılandırılmış verileri, sayfa hızı optimizasyonunu ve mobil arama sıralama faktörlerini kapsar.

Üretim İzleme ve Uyarı: Tam Kurulum Kılavuzu

Prometheus, Grafana ve Sentry ile üretim izleme ve uyarıları ayarlayın. Ölçümleri, günlükleri, izlemeleri, uyarı politikalarını ve olay müdahale iş akışlarını kapsar.

API Performansı: Hız Sınırlama, Sayfalandırma ve Eşzamansız İşleme

Hız sınırlama algoritmaları, imleç tabanlı sayfalandırma, eşzamansız iş kuyrukları ve yanıt sıkıştırmayla ilgili en iyi uygulamalarla yüksek performanslı API'ler oluşturun.

WhatsApp'ta Sohbet Et