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ı.
  • Image optimization ve Google pagespeed ayarlarını 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","white_space":"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 0.1.2 advanced-rule komutlarını göstermiyorsa aynı payload /api/advanced_managements/{account_uuid}/store public API akışıyla gönderilir.

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.

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.