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>
cdnctl cdn advanced-rules list --account "$ACCOUNT_UUID" --format table
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
cdnctl cdn advanced-rules validate --account "$ACCOUNT_UUID" --file rule-static-assets.json
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
cdnctl cdn advanced-rules validate --account "$ACCOUNT_UUID" --file 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
cdnctl cdn advanced-rules validate --account "$ACCOUNT_UUID" --file rule-wordpress-sensitive.json
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
cdnctl cdn advanced-rules validate --account "$ACCOUNT_UUID" --file 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 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/"
WordPress admin/cart bypass olurken statik assetler ve anonim JSON pathleri kontrollü cachelensin.
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.
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.