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.
CDN.com.tr Yardım
Domain/path bazlı cache key, TTL, method/status, header/cookie, optimization ve rate-limit kurallarını düzenleyin.
Cache, güvenlik, WAF ve purge
Domain/path bazlı cache key, TTL, method/status, header/cookie, optimization ve rate-limit kurallarını düzenleyin.
Bu örnekler WordPress origin üstünde statik dosya, query string, header/cookie ve hassas oturum pathleri için denenmiş güvenli senaryolardır.
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.
Session veya cart cookie gördüğünüzde cache atlayın; wp-admin ve wp-login pathleri hiçbir zaman paylaşımlı cachee girmesin.
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.
API benzeri pathlerde yalnızca içeriği değiştiren query parametrelerini cache keye alın ve request sınırı koyun.
Kuralı önce domain, protokol ve path regex ile daraltın; `/` gibi geniş pathler en son ve bilinçli kullanılmalıdır.
Query string içeriği gerçekten değiştiriyorsa cache keyde kalır; tracking parametreleri çoğu zaman çıkarılır.
Kişiye özel, sepet veya admin içeriği bypass; statik ve anonim içerik TTL alır.
Origin headerını cache kararından ayırmak, kullanıcıya göstermekten farklıdır.
Account-level presetler genel davranışı belirler; Add Rule belirli domain/path için daha hassas davranış yazar.
Beklenen sonuç: Rule modalı açılır ve yeni kural seçili account scopeunda hazırlanır.
cdnctl accounts list
export ACCOUNT_UUID=<selected_account_uuid>
Bu alanlar kuralın hangi requestlere uygulanacağını belirler; yanlış geniş regex tüm site davranışını değiştirebilir.
Beklenen sonuç: Kural yalnızca hedef hostname ve pathlerle eşleşir.
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
Statik dosya için query tracking parametrelerini cache keyden çıkarıp, gerçek varyant parametrelerini koruyun.
Beklenen sonuç: CSS/JSON gibi anonim objeler cachelenir; gereksiz query parametreleri cache parçalanması oluşturmaz.
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
Admin, login, cart ve checkout gibi pathlerde cache hit yerine origin davranışı korunmalıdır.
Beklenen sonuç: Oturumlu requestler başka kullanıcıya cachelenmiş içerik döndürmez.
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
Origin headerlarını cache kararından ayırırken response olarak görünür kalıp kalmayacağını ayrıca seçin.
Beklenen sonuç: Origin headerları kontrollü kullanılır; debug üretim trafiğinde açık unutulmaz.
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
Save canlı apply sürecini tetikleyebildiği için son kontrol path/domain/TTL/header üzerinden yapılır.
Beklenen sonuç: Operation success sonrası eşleşen request yeni cache/header/rate-limit davranışını gösterir.
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/"
WordPress admin/cart bypass olurken statik assetler ve anonim JSON pathleri kontrollü cachelensin.
Güvenlik sayfasından üç modlu bot doğrulamayı açın, "Herkese" modunu bilinçli kullanın, geçme oranını okuyun.
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.
Internal log sistemlerini açmadan blocked/challenged traffic açıklayın.
Path, saved path veya tüm account purge yapın; CDN cache ile browser cache farkını ayırın.
Cache'lenen her nesne, istekten üretilen bir anahtar altında saklanır — şema, host, yol ve query string. Purge yalnızca tam o anahtarı adreslediğinde girdiyi temizler. Bu tek fikir, "purge çalışmadı" vakalarının neredeyse hepsini açıklar.
X-Proxy-Cache-MT yanıt başlığıyla CDN'in bir isteğe tam olarak ne yaptığını görün ve cache'in beklendiği gibi çalıştığını doğrulayın.