تحسين الأداء باستخدام قواعد CDN
استخدم محرك القواعد لإعادة توجيه HTTP إلى HTTPS، وإضافة رؤوس الأمان، وتطبيق التصفية الجغرافية لتقييد الوصول إلى المحتوى من بلدان محددة.
تحسين الأداء باستخدام قواعد CDN درس مجاني في Azure Fundamentals على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Azure Fundamentals، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Azure Fundamentals 4 دروس في المجموع.
أهمية محرك القواعد
يتيح محرك قواعد Azure Front Door، الذي يُسمى Rule sets في الإصدارين Standard وPremium، اعتراض طلبات HTTP والاستجابات وتعديلها عند نقطة الحضور PoP الطرفية قبل تخزينها مؤقتًا أو إعادة توجيهها إلى الأصل. ومن دون محرك قواعد، سيتعين عليك معالجة مهام مثل إعادة التوجيه من HTTP إلى HTTPS، ورؤوس استجابة الأمان، والحظر الجغرافي داخل تعليمات برمجية تطبيقك في الأصل، مما يضيف زمن انتقال ويربط اعتبارات الأمان بمنطق الأعمال. تُنفَّذ القواعد عند الحافة بسرعة أكبر وتقلل الحمل على الأصل.
إعادة التوجيه من HTTP إلى HTTPS
من أكثر حالات استخدام محرك القواعد شيوعًا فرض استخدام HTTPS. عندما يطلب العميل موقعك عبر HTTP، تعيد قاعدة إعادة التوجيه عند حافة Front Door فورًا استجابة 301 Moved Permanently أو 302 Found تشير إلى عنوان HTTPS، من دون أن يصل الطلب إلى الأصل إطلاقًا. وهذا أسرع من عمليات إعادة التوجيه من جهة الأصل، ويضمن تشفير جميع حركة المرور أثناء النقل. قم بتكوين ذلك كإجراء إعادة توجيه للطلبات التي يساوي فيها شرط RequestScheme القيمة HTTP.
// Rules engine rule — redirect HTTP to HTTPS
// Match condition: RequestScheme Equals HTTP
// Action: URL Redirect
// Redirect type: Moved (301)
// Destination protocol: HTTPS
// Destination host: {http.request.host}
// Destination path: {http.request.uri.path}
// Query string: {http.request.uri.querystring}إضافة رؤوس استجابة الأمان
تدعم المتصفحات الحديثة رؤوس أمان HTTP التي تمنع الهجمات الشائعة. ويمكنك إضافة هذه الرؤوس إلى جميع الاستجابات باستخدام إجراءات Append response header في محرك القواعد، من دون تعديل خادم الأصل. وتشمل الرؤوس الرئيسية: Strict-Transport-Security، الذي يفرض استخدام HTTPS لمدة محددة، وX-Content-Type-Options: nosniff، الذي يمنع استكشاف نوع MIME، وX-Frame-Options: DENY، الذي يمنع هجمات النقر الخادع، وContent-Security-Policy، الذي يقيّد مصادر المحتوى. وتضمن إضافة هذه الرؤوس عند الحافة تطبيقها بصورة متسقة على جميع الأصول.
// Rules engine — add security headers to all responses
// Action 1: Append response header
// Header name: Strict-Transport-Security
// Value: max-age=31536000; includeSubDomains
// Action 2: Append response header
// Header name: X-Content-Type-Options
// Value: nosniff
// Action 3: Append response header
// Header name: X-Frame-Options
// Value: DENYتجاوز إعدادات التخزين المؤقت لكل قاعدة
يتيح لك محرك القواعد تجاوز مدة البقاء الافتراضية في ذاكرة التخزين المؤقت لأنماط عناوين URL محددة. فعلى سبيل المثال، قد ترغب في تخزين /static/images/* مؤقتًا لمدة 30 يومًا، بينما تخزن استجابات /api/* مؤقتًا لمدة 60 ثانية فقط. استخدم شرط مطابقة على RequestUri وإجراء Route configuration override يحدد مدة تخزين مخصصة. يتيح ذلك تحكمًا دقيقًا في سلوك التخزين المؤقت دون إنشاء مسارات منفصلة متعددة لكل نوع من أنواع المحتوى.
// Rules engine — cache API responses for 60 seconds
// Match condition: RequestUri BeginsWith /api/
// Action: Route configuration override
// Cache: Enabled
// Caching duration: 0 days, 0 hours, 1 minute
// Query string caching: Include All
// Rules engine — cache static images for 30 days
// Match condition: RequestUri BeginsWith /static/images/
// Action: Route configuration override
// Cache: Enabled
// Caching duration: 30 daysإعادة كتابة عناوين URL عند الحافة
تعدّل إجراءات إعادة كتابة عنوان URL عنوان URL للطلب قبل إعادة توجيهه إلى الأصل، من دون تغيير عنوان URL الذي يراه العميل. ويفيد ذلك في إرسال الطلبات من بنية عنوان URL إلى مسار مختلف في الواجهة الخلفية. فعلى سبيل المثال، يمكنك إعادة كتابة /products/item/{id} إلى /catalog/v2/products/{id} للتعامل مع تغيير في واجهة API الخلفية دون تحديث روابط العملاء. وإعادة كتابة عنوان URL إجراء في محرك القواعد يعدّل URL path باستخدام استبدال السلاسل أو مجموعات الالتقاط.
قواعد التصفية الجغرافية
تتيح التصفية الجغرافية على مستوى محرك القواعد إعادة توجيه المستخدمين أو حظرهم من بلدان محددة استنادًا إلى الموقع الجغرافي المستنتج من عنوان IP الخاص بالعميل. وعلى خلاف التصفية الجغرافية في CDN، التي تعيد 403، تمنحك التصفية الجغرافية في محرك القواعد مرونة أكبر؛ إذ يمكنك إعادة توجيه البلدان المحظورة إلى صفحة مقصودة تشرح التوفر الإقليمي، أو توجيه بلدان معينة إلى مجموعات أصل خاصة بالمنطقة، مثل توجيه مستخدمي الاتحاد الأوروبي إلى أصول داخل الاتحاد الأوروبي للامتثال للائحة GDPR. وتستخدم مطابقة الموقع الجغرافي RemoteAddress قاعدة بيانات MaxMind لتحويل عناوين IP إلى بلدان.
معالجة رؤوس الطلبات
يمكن لمحرك القواعد إضافة رؤوس الطلبات أو الكتابة فوقها أو حذفها قبل إعادة توجيه الطلب إلى الأصل. ومن الاستخدامات الشائعة إضافة X-Forwarded-For أو رأس مخصص مثل X-Front-Door-Id كي يعرف الأصل أن الطلبات مرّت عبر Front Door ويتمكن من التحقق منها. ويمكنك أيضًا حذف رأس Host الأصلي واستبداله باسم مضيف الأصل، وهو أمر مهم عندما يتحقق الأصل من رأس Host. ويمنحك ذلك تحكمًا كاملًا فيما يراه خادم الأصل.
التوجيه استنادًا إلى رؤوس الطلبات
يمكن لشروط محرك القواعد مطابقة قيم رؤوس الطلبات، مما يتيح منطق توجيه متقدمًا. فعلى سبيل المثال، يمكنك توجيه الطلبات التي تتضمن الرأس X-API-Version: 2 إلى مجموعة أصل مختلفة تشغّل واجهة API بالإصدار v2، بينما تُرسل الطلبات التي لا تتضمن هذا الرأس إلى أصل الإصدار v1. ويتيح ذلك إدارة إصدارات واجهة API بأسلوب blue-green عند الحافة دون الحاجة إلى أسماء مضيفين منفصلة لكل إصدار من واجهة API. ويُستخدم التوجيه المستند إلى الرؤوس أيضًا لاختبار A/B من خلال التوجيه استنادًا إلى ملف تعريف ارتباط مخصص لشريحة المستخدم.
ضغط الاستجابات عند الحافة
يضغط ضغط الاستجابة في Front Door الاستجابات النصية، مثل HTML وCSS وJavaScript وJSON، باستخدام gzip أو Brotli قبل تقديمها من نقاط الحضور PoP. ويكون الضغط أكثر فاعلية مع حزم JavaScript الكبيرة، إذ يقلل حجم النقل بنسبة تصل إلى 70%. فعّل الضغط في إعدادات المسار وحدد أنواع MIME المطلوب ضغطها. يُخزَّن المحتوى المضغوط مؤقتًا بصيغته المضغوطة في نقطة الحضور PoP، لذلك لا يؤدي الضغط إلا أول طلب لكل أصل إلى تشغيل عملية الضغط؛ أما الطلبات اللاحقة فتقدم الملف المضغوط المخزن مؤقتًا فورًا.
حماية الأصل
إن Origin Shield طبقة تخزين مؤقت إضافية اختيارية يضعها Front Door بين عقد الحافة في نقاط الحضور PoP والأصل. عند تمكينها، بدلًا من أن يطلب كل واحد من أكثر من 100 نقطة حضور طرفية المحتوى غير المخزن مؤقتًا من الأصل بشكل مستقل، تعيد جميعها توجيه حالات فقدان التخزين المؤقت إلى نقطة حضور إقليمية واحدة لحماية الأصل، والتي تعيد توجيهها بعد ذلك إلى الأصل. ويقلل ذلك بدرجة كبيرة عدد الطلبات التي تصل إلى الأصل، وهو ما يُسمى نسبة تفريغ الحمل عن الأصل، مع الاستمرار في تقديم المحتوى عالميًا من نقاط الحضور الطرفية.
اختبار القواعد باستخدام Front Door Explorer
قبل نشر تغييرات محرك القواعد في بيئة الإنتاج، تحقّق من صحتها باستخدام أدوات التشخيص والاختبار في المدخل. وتعرض لوحة Diagnostic settings مع سجلات WAF في وضع الكشف القواعد التي تتم مطابقتها. وبالنسبة إلى محرك القواعد، يمكنك أيضًا فحص رؤوس الطلبات والاستجابات الفعلية في أدوات المطور في المتصفح بعد النشر في بيئة مرحلية، أو استخدام curl -v لإرسال طلبات محددة والتحقق من أن رؤوس الاستجابة وسلوك إعادة التوجيه يعملان كما هو متوقع قبل التبديل إلى بيئة الإنتاج.
# Test HTTP-to-HTTPS redirect at the CDN/Front Door edge
curl -v -L http://myapp.azurefd.net/ 2>&1 | grep -E '< (HTTP|Location)'
# Expected output:
# < HTTP/1.1 301 Moved Permanently
# < Location: https://myapp.azurefd.net/اختبار سريع
اختبر مدى فهمك لمفاهيم Microsoft Azure Fundamentals (AZ-900) الواردة في هذا الدرس.
مراجعة الدرس
تعلّمت في هذا الدرس أن محرك قواعد Front Door يتولى عمليات إعادة التوجيه من HTTP إلى HTTPS، ورؤوس استجابة الأمان، وتجاوزات مدة التخزين المؤقت عند الحافة دون إجراء تغييرات على الأصل، وأن إعادة كتابة عنوان URL تعدّل مسارات الطلبات بصمت قبل إعادة توجيهها إلى الأصل، بينما تغيّر إعادة توجيه عنوان URL العنوان الذي يراه العميل، وأن Origin Shield يقلل الحمل على الأصل من خلال تجميع طلبات فقدان التخزين المؤقت عبر عقدة حماية إقليمية. بعد ذلك، سنستكشف Azure AI Services لإضافة الذكاء إلى تطبيقاتك.
الأسئلة الشائعة
هل درس «تحسين الأداء باستخدام قواعد CDN» مجاني؟
نعم — نص درس «تحسين الأداء باستخدام قواعد CDN» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Azure Fundamentals، انتقل إلى CoddyKit PRO. تتضمن دورة Azure Fundamentals 4 دروس في المجموع.
ماذا ستتعلم في «تحسين الأداء باستخدام قواعد CDN»؟
استخدم محرك القواعد لإعادة توجيه HTTP إلى HTTPS، وإضافة رؤوس الأمان، وتطبيق التصفية الجغرافية لتقييد الوصول إلى المحتوى من بلدان محددة. تتمرن على Azure Fundamentals مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Azure Fundamentals؟
لا تُشترط خبرة سابقة. Azure Fundamentals على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «تحسين الأداء باستخدام قواعد CDN»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Azure Fundamentals هذا؟
نعم. كل درس في Azure Fundamentals يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- ملفات تعريف Azure CDN ونقاط النهاية
- Azure Front Door: موازنة التحميل العالمية
- جدار حماية تطبيقات الويب على Front Door
- تحسين الأداء باستخدام قواعد CDN