تخزين CSS/JS مؤقتاً بشكل قوي
سرّع الأصول باستخدام GET/HEAD، واستجابات 200/301/302/304، وTTL ليوم واحد أو أطول؛ وأزل معاملات تتبع الحملات من مفتاح التخزين المؤقت.
مساعدة CDN.com.tr
اضبط مفتاح التخزين المؤقت حسب النطاق/المسار، وTTL، والطرق/الحالات، والترويسات/ملفات تعريف الارتباط، والتحسين، وقواعد تحديد المعدل.
التخزين المؤقت والأمان وWAF والمسح
اضبط مفتاح التخزين المؤقت حسب النطاق/المسار، وTTL، والطرق/الحالات، والترويسات/ملفات تعريف الارتباط، والتحسين، وقواعد تحديد المعدل.
تستخدم هذه الأمثلة سيناريوهات آمنة قائمة على أصل WordPress للملفات الثابتة وسلاسل الاستعلام والترويسات/ملفات تعريف الارتباط ومسارات الجلسات الحساسة.
سرّع الأصول باستخدام GET/HEAD، واستجابات 200/301/302/304، وTTL ليوم واحد أو أطول؛ وأزل معاملات تتبع الحملات من مفتاح التخزين المؤقت.
تجاوز التخزين المؤقت عند وجود ملف تعريف ارتباط جلسة أو سلة؛ يجب ألا تدخل مسارات wp-admin وwp-login أبداً إلى التخزين المؤقت المشترك.
تجاهل Set-Cookie أو Cache-Control في قرارات التخزين المؤقت، وأخفِ X-Origin-Debug/X-Powered-By عن المستخدمين، وفعّل تصحيح المنبع مؤقتاً فقط.
للمسارات الشبيهة بـ API، ضمّن فقط معاملات الاستعلام التي تغيّر المحتوى في مفتاح التخزين المؤقت واضبط حداً للطلبات.
ضيّق نطاق القاعدة حسب النطاق والبروتوكول وتعبير المسار النمطي قبل تغيير السلوك؛ قواعد `/` الواسعة تحتاج مراجعة متأنية.
أبقِ معاملات الاستعلام في مفتاح التخزين المؤقت فقط عندما تغيّر المحتوى؛ معاملات التتبع تُزال عادةً.
المحتوى المخصص والسلة وصفحات الإدارة يجب أن تتجاوز التخزين المؤقت؛ أما المحتوى الثابت والمجهول فيمكن أن يحصل على TTL.
تجاهل ترويسة الأصل في قرارات التخزين المؤقت يختلف عن إخفائها عن العميل.
تحدد الإعدادات المسبقة على مستوى الحساب السلوك العام؛ ويكتب Add Rule سلوكاً دقيقاً لنطاق/مسار.
النتيجة المتوقعة: تُفتح نافذة القاعدة وتُجهَّز القاعدة الجديدة ضمن نطاق الحساب المحدد.
cdnctl accounts list
export ACCOUNT_UUID=<selected_account_uuid>
cdnctl cdn advanced-rules list --account "$ACCOUNT_UUID" --format table
تحدد هذه الحقول أي الطلبات تطابقها القاعدة؛ وقد يغيّر تعبير نمطي واسع جداً الموقع بأكمله.
النتيجة المتوقعة: تطابق القاعدة اسم المضيف والمسارات المستهدفة فقط.
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
للملفات الثابتة، أزل معاملات استعلام التتبع من مفتاح التخزين المؤقت وأبقِ الصيغ الحقيقية فقط.
النتيجة المتوقعة: تُخزَّن كائنات CSS/JSON المجهولة مؤقتاً دون تقسيم التخزين المؤقت بمعاملات استعلام غير ضرورية.
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
يجب أن تحافظ مسارات الإدارة وتسجيل الدخول والسلة والدفع على سلوك الأصل بدلاً من إرجاع نتائج من التخزين المؤقت.
النتيجة المتوقعة: لا تُرجع طلبات الجلسة محتوى مخزَّناً مؤقتاً ومشتركاً إلى مستخدم آخر.
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
قرّر بشكل منفصل ما إذا كانت ترويسات الأصل تؤثر في قرارات التخزين المؤقت وما إذا كانت تُكشف للمتصفحات.
النتيجة المتوقعة: تُتحكَّم ترويسات الأصل عمداً ولا يُترك التصحيح مفعّلاً في حركة مرور الإنتاج.
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
بما أن الحفظ قد يطلق تدفق تطبيق مباشر، يكون الفحص النهائي قائماً على المسار/النطاق/TTL/الترويسة.
النتيجة المتوقعة: بعد نجاح العملية، تُظهر الطلبات المطابقة سلوك التخزين المؤقت/الترويسة/تحديد المعدل الجديد.
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 التخزين المؤقت بينما تُخزَّن الأصول الثابتة ومسارات JSON المجهولة عمداً.
استخدم سجلات WAF لتفسير حركة المرور المحظورة أو المتحدَّاة دون كشف أنظمة السجلات الداخلية.
امسح مساراً أو مساراً محفوظاً أو الحساب بأكمله، وافصل تخزين CDN المؤقت عن تخزين المتصفح المؤقت.
استخدم ترويسة الاستجابة X-Proxy-Cache-MT لترى بالضبط ما فعله CDN بالطلب وللتحقق من أن التخزين المؤقت يعمل كما هو مقصود.