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

Ö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>
cdnctl cdn advanced-rules list --account "$ACCOUNT_UUID" --format table
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.

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
cdnctl cdn advanced-rules validate --account "$ACCOUNT_UUID" --file rule-static-assets.json
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
cdnctl cdn advanced-rules validate --account "$ACCOUNT_UUID" --file 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
cdnctl cdn advanced-rules validate --account "$ACCOUNT_UUID" --file rule-wordpress-sensitive.json
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
cdnctl cdn advanced-rules validate --account "$ACCOUNT_UUID" --file 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 create --account "$ACCOUNT_UUID" --file rule-headers-debug.json
cdnctl operations list --account "$ACCOUNT_UUID"
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

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.