Loading...

CDN.com.tr Yardım

Add Rule ile cache davranışı yaz

Domain/path bazlı cache key, TTL, method/status, header/cookie, optimization ve rate-limit kurallarını düzenleyin.

Add Rule ile cache davranışı yaz

Domain/path bazlı cache key, TTL, method/status, header/cookie, optimization ve rate-limit kurallarını düzenleyin.

Panel yolu

  1. Management Panel
  2. CDN Hesapları
  3. Advanced Management
  4. Add Rule
  5. Save / Apply Changes

Add Rule ile neyi çözersiniz?

Bu örnekler WordPress origin üstünde statik dosya, query string, header/cookie ve hassas oturum pathleri için denenmiş güvenli senaryolardır.

Statik asset cache

CSS/JS dosyalarını agresif cachele

GET/HEAD, 200/301/302/304 yanıtları ve 1 gün veya daha uzun TTL ile assetleri hızlandırın; kampanya takip parametrelerini cache keyden çıkarın.

Pull / Push / Hosting Default, CNAME veya Full DNS
WordPress oturumu

Admin, login, cart ve checkout cache bypass

Session veya cart cookie gördüğünüzde cache atlayın; wp-admin ve wp-login pathleri hiçbir zaman paylaşımlı cachee girmesin.

WordPress platform Custom domain
Header hijyeni

Origin headerlarını temizle ve debug et

Set-Cookie veya Cache-Control gibi origin headerlarını cache kararından ayırın, X-Origin-Debug/X-Powered-By gibi headerları kullanıcıya göstermeyin ve geçici upstream debug açın.

Pull CDN Her teslim yöntemi
Pahalı endpoint

Rate limit ve query allow-list

API benzeri pathlerde yalnızca içeriği değiştiren query parametrelerini cache keye alın ve request sınırı koyun.

Dynamic origin Default, CNAME veya Full DNS
Farklı origin klasörü

Bir yolu origin'de başka bir klasörden sun

Kaynak dosya yolu alanına örneğin /wp-content/site-root/apple/ yazdığınızda, bu kurala uyan istekler origin'de o klasörden alınır. Ziyaretçinin gördüğü adres değişmez; cache anahtarı ve purge yolu ziyaretçinin yolu olarak kalır. Yalnız /klasör/ biçimindeki kurallarda kullanılabilir, regex kurallarda kapalıdır.

Pull / Hosting Her teslim yöntemi

Ön koşullar

  • Account ve hostname seçili olmalı.
  • Add Rule kaydı canlı deploy/apply sürecini tetikleyebilir; önce path, domain ve rule order gözle kontrol edilir.
  • Screenshotlarda gerçek müşteri domainleri yerine www.example.com gibi örnek değerler kullanılır.
  • WordPress gibi oturumlu uygulamalarda admin/login/cart pathleri cachelenmeden önce mutlaka bypass senaryosu yazılır.

Karar modeli

Scope önce gelir

Kuralı önce domain, protokol ve path regex ile daraltın; / gibi geniş pathler en son ve bilinçli kullanılmalıdır.

  • Service domain: hangi hostname etkilenecek?
  • Type: HTTP ve/veya HTTP-2 gerekli mi?
  • Path Regex: sadece hedef dosya, klasör veya endpoint mi?

Cache key query modeli

Query string içeriği gerçekten değiştiriyorsa cache keyde kalır; tracking parametreleri çoğu zaman çıkarılır.

  • Full query: her parametre ayrı cache objesi.
  • Ignore all/listed: kampanya parametrelerini tek objeye indirir.
  • Allow listed: sadece lang, v gibi parametreleri keye alır.

Bypass mı TTL mi?

Kişiye özel, sepet veya admin içeriği bypass; statik ve anonim içerik TTL alır.

  • Bypass Cache: session/admin/cart pathleri.
  • Cache Expire Time: statik ve anonim içerik.
  • Response TTL: 404/500 gibi statuslar için ayrı süre.

Header/cookie davranışı

Origin headerını cache kararından ayırmak, kullanıcıya göstermekten farklıdır.

  • Ignore Headers: CDN kararında headerı yok sayar.
  • Hide Headers: response headerını istemciye göstermez.
  • Bypass by Cookie: cookie varsa cache kullanılmaz.

Adım adım rehber

1

Advanced Management ekranında Add Rule aç

Account-level presetler genel davranışı belirler; Add Rule belirli domain/path için daha hassas davranış yazar.

  • CDN Hesapları ekranında hedef accountu seçin.
  • Advanced Management açın.
  • Add Rule butonuna tıklayın.

Beklenen sonuç: Rule modalı açılır ve yeni kural seçili account scopeunda hazırlanır.

cdnctl karşılığı
cdnctl accounts list
export ACCOUNT_UUID=<selected_account_uuid>
2

Domain, protokol ve path regex kapsamını daralt

Bu alanlar kuralın hangi requestlere uygulanacağını belirler; yanlış geniş regex tüm site davranışını değiştirebilir.

  • Service Domain Name alanında hostname seçin.
  • HTTP ve/veya HTTP-2 seçin.
  • Path Regex için dosya, klasör veya endpoint patterni yazın.
  • Gerekirse cache preset seçin.
  • İçerik origin'de başka bir klasörde duruyorsa Kaynak dosya yolu alanına o klasörü yazın; alan yalnız /klasör/ biçimindeki kurallarda açıktır.

Beklenen sonuç: Kural yalnızca hedef hostname ve pathlerle eşleşir.

cdnctl karşılığı
cat > rule-static-assets.json <<EOF
{"server_domain_names":["www.example.com"],"type":["http","http2"],"path_regex":"^/cdn-help/rules/(cache-demo\\.css|query-demo\\.json)$"}
EOF
3

Cache key, TTL, method ve status kararını ver

Statik dosya için query tracking parametrelerini cache keyden çıkarıp, gerçek varyant parametrelerini koruyun.

  • Cache Key Query Params için Ignore listed params veya Allow listed params seçin.
  • Cache Expire Time girin.
  • Allowed Cache Methods ve Allowed Cache Responses alanlarını sınırlayın.
  • Status code bazlı TTL gerekiyorsa her statusun yanına süre yazın.

Beklenen sonuç: CSS/JSON gibi anonim objeler cachelenir; gereksiz query parametreleri cache parçalanması oluşturmaz.

cdnctl karşılığı
jq '. + {"cache_query_mode":"ignore_list","cache_query_params":["utm_*","gclid","fbclid","msclkid"],"cache_valid_time":"1 day","allowed_cache_methods":["GET","HEAD"],"allowed_cache_responses":["200","301","302","304"],"response_cache_times":{"200":"1 day","301":"1 week","302":"2 hours","304":"1 day"}}' rule-static-assets.json > rule-static-assets-cache.json
4

WordPress session pathlerini cache dışında bırak

Admin, login, cart ve checkout gibi pathlerde cache hit yerine origin davranışı korunmalıdır.

  • Path Regex alanını /wp-admin, wp-login.php, cart, checkout gibi pathlere daraltın.
  • Bypass Cache ON yapın.
  • Bypass by Cookie alanına oturum/sepet cookielerini satır satır yazın.
  • Gerekirse Request Sınırı ve hotlink listesi ekleyin.

Beklenen sonuç: Oturumlu requestler başka kullanıcıya cachelenmiş içerik döndürmez.

cdnctl karşılığı
cat > rule-wordpress-sensitive.json <<EOF
{"server_domain_names":["www.example.com"],"type":["http","http2"],"path_regex":"^/(wp-admin|wp-login\\.php|cart|checkout)(/.*)?$","bypass":"on","bypass_by_cookie":"wordpress_logged_in\nwoocommerce_cart_hash\nwp_woocommerce_session_","limit":30,"per_time":10}
EOF
5

Header, cookie, optimizasyon ve debug alanlarını bağla

Origin headerlarını cache kararından ayırırken response olarak görünür kalıp kalmayacağını ayrıca seçin.

  • Ignore Headers ile cache kararından çıkarılacak headerları seçin.
  • Hide Headers ile istemciye gösterilmeyecek headerları seçin.
  • Custom Headers gerekiyorsa requeste eklenecek headerları yazın.
  • Debug upstream headers yalnızca geçici testte açık kalmalı.
  • Görsel optimizasyonunu önce yalnızca hedef pathte deneyin.

Beklenen sonuç: Origin headerları kontrollü kullanılır; debug üretim trafiğinde açık unutulmaz.

cdnctl karşılığı
jq '. + {"ignore_headers":["Cache-Control","Set-Cookie"],"hide_headers":["X-Origin-Debug","X-Powered-By"],"custom_headers":"X-Forwarded-Host: $host\nX-CDN-Rule-Debug: temporary","debug_upstream_headers":true,"image_optimization":"on"}' rule-static-assets-cache.json > rule-headers-debug.json
6

Kaydet, deploy sonucunu izle ve public URL ile doğrula

Save canlı apply sürecini tetikleyebildiği için son kontrol path/domain/TTL/header üzerinden yapılır.

  • Kuralı kaydetmeden önce changed fields ve rule orderı kontrol edin.
  • Save sonrası Operations veya Apply Changes durumunu izleyin.
  • Public URL üzerinde status, cache headerı, gizlenen header ve cookie bypass davranışını test edin.

Beklenen sonuç: Operation success sonrası eşleşen request yeni cache/header/rate-limit davranışını gösterir.

cdnctl karşılığı
cdnctl cdn advanced-rules validate --account "$ACCOUNT_UUID" --file rule-headers-debug.json
cdnctl cdn advanced-rules create --account "$ACCOUNT_UUID" --file rule-headers-debug.json
# Both commands post the same JSON; create writes it via /api/advanced_managements/{account_uuid}/store.
curl -I "https://www.example.com/cdn-help/rules/cache-demo.css?utm_source=test"
curl -I -H "Cookie: wordpress_logged_in=redacted" "https://www.example.com/wp-admin/"

Doğrulama

  • Rule order ve changed fields gözle kontrol edilir.
  • Geniş / regexleri için ayrı onay alınır.
  • Debug upstream headers testten sonra kapatılır.
  • Apply sonrası public URL, status code, cache key query davranışı ve header/cookie sonucu curl veya browser devtools ile doğrulanır.
  • cdnctl cdn advanced-rules validate aynı JSON'u kaydetmeden denetler, cdnctl cdn advanced-rules create ise onu /api/advanced_managements/{account_uuid}/store üzerinden yazar; cdnctl kullanmayan bir pipeline JSON'u doğrudan bu API'ye gönderebilir.

Kullanım senaryoları

WordPress admin/cart bypass olurken statik assetler ve anonim JSON pathleri kontrollü cachelensin.

Kısa akış

  1. Advanced Management açın.
  2. Add Rule ile scope belirleyin.
  3. Cache, header/cookie ve güvenlik alanlarını doldurun.
  4. Save sonrası operation ve public URL ile doğrulayın.

Kontroller

  • Rule order açık.
  • Path regex gereğinden geniş değil.
  • Debug headerlar testten sonra kapalı.
  • Değişen alanlar save öncesi görünür.

İlgili sayfalar

Güvenlik sayfası: WAF, IP ve ülke engelleme, hotlink, rate limit

Hesap düzeyindeki tüm güvenlik kontrolleri tek Güvenlik sayfasında: site geneli WAF anahtarı, JS Challenge bot koruması, IP ve ülke engelleme, hotlink koruması, istek rate limit'i ve link süresi. Her kayıt edge'e otomatik deploy olur — ayrı bir yayınlama adımı yoktur.

ASN ve ülke bazlı trafik engelleme

Aynı panelde iki hesap geneli kara liste: ülke kodu ile bütün ülkeleri, otonom sistem numarası ile bütün ağları engelleyebilirsiniz. Engellenen ziyaretçi, üzerinde Referans No bulunan markalı 403 sayfasını görür.

Alan adlarınız için HSTS açma

Hsts güvenlik ön ayarı, edge sunucularının HTTPS yanıtlarına Strict-Transport-Security: max-age=31536000 başlığını eklemesini sağlar. Sitenizi bir kez görmüş bir tarayıcı, bir yıl boyunca onu düz HTTP üzerinden açmayı reddeder.

WAF loglarını oku

Internal log sistemlerini açmadan blocked/challenged traffic açıklayın.

Cache purge yap

Path, saved path veya tüm account purge yapın; CDN cache ile browser cache farkını ayırın.

Cache durumunu oku: HIT, MISS, BYPASS, EXPIRED

CDN'in bir isteği cache'ten verip vermediğini yanıttaki X-Proxy-Cache-MT başlığı söyler (başka CDN'lerdeki X-Cache'in karşılığı). HIT, yanıtın origin'e gitmeden edge cache'inden geldiğini; MISS, origin'den alınıp kaydedildiğini; EXPIRED, süresi dolan kopyanın tazelendiğini; BYPASS ise isteğin bir kural ya da oturum cookie'si yüzünden bilerek origin'e gittiğini gösterir. Başlığı DevTools'ta ya da curl ile okuyabilirsiniz.

Görsel optimizasyonu: edge'de AVIF ve WebP

Görsel optimizasyonunu hesap için ya da tek bir yayınlama kuralı için açın, WebP ya da WebP + AVIF seçin: edge JPEG ve PNG görselleri dönüştürür ve her tarayıcıya kabul ettiği bir biçimi gönderir; sayfalarınızdaki görsel URL'leri değişmez.