İçeriğe geç
Use Cases 6 dk okuma 1316 görüntülenme

CDN'de proxy'ler

GProxy ile CDN ağlarındaki proxy'lerin içerik dağıtımını nasıl optimize ettiğini, gecikmeyi nasıl azalttığını ve site performansını nasıl artırdığını inceleyin.

CDN'de proxy'ler

Bir Content Delivery Network (CDN) içindeki proxy'ler, içeriği son kullanıcılara daha yakın önbelleğe alan, ağ isteklerini optimize eden ve trafiği dağıtık altyapı genelinde verimli biçimde dağıtan aracı sunucular olarak çalışarak içerik dağıtımını hızlandırır.

CDN mimarisinde proxy'lerin rolü

Bir CDN içinde proxy'ler temel bileşenlerdir ve başlıca edge sunucular ya da Points of Presence (PoP) biçiminde karşımıza çıkar. Bu sunucular dünya genelinde stratejik olarak dağıtılır ve içerik origin sunucuları ile son kullanıcılar arasında bir ağ katmanı oluşturur. Bir kullanıcı içerik istediğinde, DNS çözümlemesi onu genellikle içeriğin asıl barındırıcısına değil, en yakın veya en uygun CDN edge proxy'sine yönlendirir. Bu yakınlık gecikmeyi belirgin şekilde azaltır ve yüklenme sürelerini iyileştirir.

Edge proxy'ler ve Points of Presence (PoP)

Her PoP, gelen kullanıcı isteklerini karşılamak üzere tasarlanmış bir veya daha fazla proxy sunucu içerir. Bu proxy'ler basit yönlendirmenin ötesinde birçok işlev üstlenir ve hız ile güvenilirliği artırmak için içerik dağıtım zincirine etkin biçimde katılır. Temel amaçları, mümkün olduğunca içeriği edge'den sunmak ve uzaktaki origin sunuculardan veri çekme ihtiyacını en aza indirmektir.

Hızı artıran temel mekanizmalar

Proxy'ler içerik dağıtımını hızlandırmak için birkaç mekanizma kullanır:

İçeriği edge'de önbelleğe alma

Önbellekleme, CDN proxy'lerinin sağladığı en büyük hız kazancıdır. Bir edge proxy, daha önce çektiği bir içeriğe yönelik istek aldığında, origin sunucuya hiç bağlanmadan içeriği doğrudan kendi yerel deposundan sunabilir. Bu şunları azaltır:
* Round-Trip Time (RTT): bir isteğin kullanıcıdan origin'e gidip geri dönmesi için geçen süre.
* Origin sunucu yükü: origin üzerindeki işlem yükünü azaltır, yavaşlamaları veya kesintileri önler.
* Bant genişliği tüketimi: origin sunucunun veri transferi maliyetlerini azaltır.

Cache hit ve cache miss:
* Cache hit: istenen içerik proxy'nin önbelleğinde vardır. Proxy içeriği doğrudan sunar.
* Cache miss: istenen içerik proxy'nin önbelleğinde yoktur veya süresi dolmuştur. Proxy içeriği origin'den çeker, kullanıcıya sunar ve sonraki istekler için bir kopyasını önbelleğine kaydeder.

Önbellek geçersizleştirme:
CDN'ler önbellek tazeliğini çeşitli stratejilerle yönetir:
* Time-To-Live (TTL): içerik önceden tanımlanmış bir süre boyunca önbellekte tutulur.
* Önbellek başlıkları: Cache-Control ve Expires gibi HTTP başlıkları önbellekleme davranışını belirler.
* Manuel temizleme (purge): yöneticiler içeriği CDN genelinde önbellekten açıkça kaldırabilir.
* API ile geçersizleştirme: otomatik sistemler içerik güncellendiğinde purge tetikler.

Yük dengeleme ve trafik dağıtımı

CDN'deki proxy'ler aynı zamanda yük dengeleyici olarak çalışır ve gelen kullanıcı isteklerini birden çok kaynağa dağıtır. Bu şunları kapsayabilir:
* İstekleri tek bir PoP içindeki birden çok sunucuya dağıtmak: hiçbir sunucunun aşırı yüklenmemesini sağlar.
* İstekleri birden çok origin sunucuya dağıtmak: CDN içeriği birkaç origin'den çekecek şekilde yapılandırılmışsa.
* Trafiği en az kullanılan veya coğrafi olarak en yakın PoP'a yönlendirmek: DNS tabanlı yönlendirme veya IP Anycast ile yapılır.

Yük dengeleme algoritmaları kaynakların en verimli kullanımını sağlar ve darboğazları önler; yoğun trafikte bile tutarlı dağıtım hızlarını korur. Yaygın algoritmalar arasında Round Robin, Least Connections ve IP Hash bulunur.

İçerik optimizasyonu ve sıkıştırma

CDN proxy'leri, dosya boyutlarını küçültmek için anlık içerik optimizasyonu ve sıkıştırma yapabilir; bu da doğrudan daha hızlı indirme süresi demektir.
* Sıkıştırma: origin daha önce yapmadıysa, proxy'ler metin tabanlı kaynaklara (HTML, CSS, JavaScript) Gzip veya Brotli sıkıştırması uygulayabilir.
* Görsel optimizasyonu: bazı CDN'ler edge proxy tarafından yürütülen yeniden boyutlandırma, format dönüştürme (örneğin WebP) ve kalite düşürme gibi görsel işleme hizmetleri sunar.
* Minification: işlevi değiştirmeden koddan gereksiz karakterleri kaldırma.

Gzip sıkıştırması için Nginx proxy yapılandırması örneği:

http {
    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;
}

Protokol optimizasyonu

Proxy'ler, kullanıcı ile edge arasında ve bazen edge ile origin arasında modern, daha hızlı iletişim protokollerinin kullanılmasını sağlar.
* HTTP/2 ve HTTP/3 (QUIC): bu protokoller çoğullama (tek bağlantı üzerinden birden çok istek), başlık sıkıştırma ve server push sunarak HTTP/1.1'e kıyasla gecikmeyi belirgin şekilde azaltır. CDN proxy'leri, origin'in yeteneklerinden bağımsız olarak kullanıcı bağlantılarını çoğu zaman bu yeni protokollerle sonlandırır.
* TCP optimizasyonu: proxy'ler, özellikle uzun mesafelerde daha hızlı bağlantı kurma ve veri aktarımı için optimize edilmiş TCP yığınları (örneğin BBR) ve ayarları kullanabilir.

Optimize edilmiş yönlendirme

CDN'ler, kullanıcı isteklerini en verimli edge proxy'ye yönlendirmek için gelişmiş yönlendirme mekanizmaları kullanır. Bu genellikle şunlara dayanır:
* Coğrafi konum: kullanıcıları en yakın PoP'a yönlendirmek.
* Ağ tıkanıklığı: trafiği aşırı yüklenmiş ağ yollarından uzaklaştırmak.
* Sunucu sağlığı: sorun yaşayan PoP'lardan veya sunuculardan kaçınmak.

Böylece kullanıcı coğrafi olarak bir PoP'a yakın olsa bile, birincil yol tıkalıysa alternatif bir yola yönlendirilir ve en iyi hız korunur.

Performansı mümkün kılan bir unsur olarak güvenlik

Veri aktarımı açısından doğrudan bir hızlandırma mekanizması olmasa da, proxy düzeyinde uygulanan güvenlik özellikleri erişilebilirliği güvence altına alarak ve performans kaybını önleyerek içerik dağıtım hızına katkı sağlar.
* DDoS azaltma: proxy'ler kötü niyetli trafiği emer ve filtreler; hizmet reddi saldırılarının origin'i veya CDN altyapısını çökertmesini engeller; aksi halde ciddi yavaşlama veya kesinti yaşanırdı.
* Web Application Firewall (WAF): yaygın web zafiyetlerine karşı koruma sağlar; uygulama kararlılığını güvence altına alır ve hizmeti kesintiye uğratıp içerik dağıtımını yavaşlatabilecek saldırıları önler.
* SSL/TLS offloading: proxy'ler işlem yükü yüksek olan SSL/TLS el sıkışmasını ve şifreleme/şifre çözme işlemlerini üstlenir; bu görevi origin sunucudan alır ve çoğu zaman daha hızlı işlem için özel donanım kullanır.

CDN bağlamında proxy türleri

Reverse proxy'ler

Bir CDN içinde kullanılan başlıca proxy türü reverse proxy'dir. Reverse proxy, bir veya daha fazla web sunucusunun önünde konumlanır ve istemcilerden gelen istekleri karşılar. İsteği uygun sunucuya iletir, sunucunun yanıtını alır ve istemciye ulaştırır. Bir CDN'de edge sunucu, origin sunucu için reverse proxy görevi görür.

CDN reverse proxy'lerinin özellikleri:
* İstemciye şeffaflık: istemciler doğrudan origin ile iletişim kurduklarını algılar.
* Önbellekleme yeteneği: statik ve dinamik içeriğin kopyalarını saklar.
* Güvenlik katmanı: saldırılara karşı ilk savunma hattını oluşturur.
* Yük dengeleme: istekleri iç kaynaklar arasında dağıtır.
* SSL/TLS sonlandırma: şifreleme/şifre çözme işlemlerini üstlenir.

Pratik uygulama: bir istek akışı örneği

example.com/image.jpg isteyen bir kullanıcıyı düşünün:

  1. DNS sorgusu: kullanıcının tarayıcısı example.com için DNS sorgusu yapar. CDN'in DNS servisi, en yakın veya en uygun CDN edge proxy sunucusunun IP adresini döner.
  2. Edge proxy'ye istek: kullanıcının tarayıcısı example.com/image.jpg için HTTP isteğini doğrudan CDN edge proxy'sine gönderir.
  3. Önbellek kontrolü: edge proxy, yerel önbelleğinde image.jpg dosyasını arar.
    • Cache hit: image.jpg bulunur ve geçerliyse, proxy görseli anında kullanıcıya sunar.
    • Cache miss: image.jpg bulunamazsa veya süresi dolmuşsa, proxy isteği origin sunucuya (örneğin origin.example.com) iletir.
  4. Origin'den çekme (cache miss durumunda): origin sunucu isteği işler ve image.jpg dosyasını edge proxy'ye geri gönderir.
  5. Önbellekleme ve dağıtım: edge proxy image.jpg dosyasını alır, bir kopyasını önbelleğine kaydeder ve kullanıcıya sunar. Bu PoP'a yönlendirilen kullanıcıların sonraki image.jpg istekleri cache hit ile sonuçlanır ve dağıtım süresi belirgin şekilde kısalır.

Proxy önbellekleme ve optimizasyon yapılandırma örnekleri

Nginx veya Varnish gibi proxy sunucular çoğu zaman CDN PoP'ları içinde bileşen olarak kullanılır. Yapılandırmaları, içeriğin nasıl önbelleğe alınacağını ve optimize edileceğini doğrudan belirler.

Nginx proxy önbellek yapılandırma parçası:
Bu örnek, bir upstream sunucudan gelen yanıtları önbelleğe almak için temel bir Nginx yapılandırmasını gösterir.

http {
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m max_size=1g;
    proxy_cache_key "$scheme$request_method$host$request_uri";

    server {
        listen 80;
        server_name cdn.example.com;

        location / {
            proxy_pass http://origin.example.com;
            proxy_cache my_cache;
            proxy_cache_valid 200 302 10m;  # Başarılı yanıtları 10 dakika önbellekte tut
            proxy_cache_valid 404 1m;     # 404 hatalarını 1 dakika önbellekte tut
            add_header X-Cache-Status $upstream_cache_status; # Hata ayıklama başlığı
            expires 30d; # Tarayıcı önbelleği
        }
    }
}

Varnish Cache yapılandırma parçası (basitleştirilmiş vcl_recv):
Varnish Cache, önbelleklemeye odaklanmış özel bir HTTP reverse proxy'dir.

vcl 4.1;

backend default {
    .host = "origin.example.com";
    .port = "80";
}

sub vcl_recv {
    # Önbelleklenebilirliği artırmak için statik dosyalardan çerezleri kaldır
    if (req.url ~ "(?i)\.(css|js|jpg|jpeg|png|gif|ico|svg|webp|woff|woff2|ttf|otf|eot)(\?.*)?$") {
        unset req.http.Cookie;
    }

    # POST isteklerini önbelleğe alma
    if (req.method == "POST") {
        return (pass);
    }

    # Önbellekte ara
    return (hash);
}

sub vcl_backend_response {
    # Origin bir değer belirtmezse tüm nesneler için varsayılan TTL ayarla
    if (beresp.ttl <= 0s || beresp.http.Set-Cookie || beresp.http.Vary == "*") {
        set beresp.ttl = 1h; # Varsayılan olarak 1 saat önbellekte tut
    }
    return (deliver);
}
Güncellendi: 04.03.2026
Kategoriye dön

Proxy'lerimizi deneyin

100+ ülkede 20,000+ proxy

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.