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.
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.
www.example.com gibi örnek değerler kullanılır.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.
lang, v gibi parametreleri keye alı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.
/wp-admin, wp-login.php, cart, checkout gibi pathlere daraltın.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"}' 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.
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/"
/ regexleri için ayrı onay alını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.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.
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.
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.
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.
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.
Bir dosyayı yalnız sizin ürettiğiniz imzayla ve seçtiğiniz ana kadar indirilebilir hâle getirin. İmzasız istek 403, süresi geçmiş istek 410 alır.
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.