استكشاف أخطاء نقاط نهاية Azure Content Delivery Network التي ترجع رمز حالة 404 وإصلاحها

تمكنك هذه المقالة من استكشاف المشكلات المتعلقة بنقاط نهاية Azure Content Delivery Network التي ترجع رموز حالة استجابة HTTP 404 وإصلاحها.

إذا كنت بحاجة إلى مزيدٍ من المساعدة في أي وقت في هذه المقالة، فيمكنك الاتصال بخبراء Azure على منتديات MSDN Azure وStack Overflow. بدلا من ذلك، يمكنك أيضا تقديم حادث دعم Azure. انتقل إلى موقع Azure Support وحدد Get Support.

العرض

لقد قمت بإنشاء ملف تعريف شبكة تسليم محتوى ونقطة نهاية، ولكن لا يبدو أن المحتوى الخاص بك متوفر على شبكة تسليم المحتوى. يتلقى المستخدمون الذين يحاولون الوصول إلى المحتوى الخاص بك عبر عنوان URL لشبكة تسليم المحتوى رمز حالة HTTP 404.

السبب

هناك العديد من الأسباب المحتملة، بما في ذلك:

  • أصل الملف غير مرئي لشبكة تسليم المحتوى.
  • تم تكوين نقطة النهاية بشكل خاطئ، مما يتسبب في ظهور شبكة تسليم المحتوى في المكان الخطأ.
  • يرفض المضيف عنوان المضيف من شبكة تسليم المحتوى.
  • لم يكن لدى نقطة النهاية الوقت للنشر عبر شبكة تسليم المحتوى.

خطوات استكشاف الأخطاء وإصلاحها

هام

بعد إنشاء نقطة نهاية شبكة تسليم المحتوى، لن تكون متاحة للاستخدام على الفور، حيث يستغرق التسجيل وقتا للنشر عبر شبكة تسليم المحتوى:

  • بالنسبة إلى ملفات تعريف Azure CDN Standard من ملفات تعريف Microsoft، يكتمل النشر عادةً في غضون عشر دقائق.
  • بالنسبة إلى Azure CDN Standard من Edgio وAzure CDN Premium من ملفات تعريف Edgio ، يكتمل النشر عادة في غضون 90 دقيقة.

إذا أكملت الخطوات الواردة في هذا المستند وما زلت تتلقى 404 ردوداً، ففكر في الانتظار بضع ساعات للتحقق مرة أخرى قبل فتح بطاقة دعم.

تحقق من الملف الأصلي

أولاً، تحقق من أن الملف المراد تخزينه مؤقتاً متاح على الخادم الأصلي ويمكن الوصول إليه بشكل عام على الإنترنت. أسرع طريقة للقيام بذلك هي فتح متصفح في جلسة خاصة أو مخفية والتصفح مباشرة إلى الملف. اكتب عنوان URL أو قم بلصقه في مربع العنوان وتحقق من أنه ينتج الملف الذي تتوقعه. على سبيل المثال، افترض أن لديك ملفاً في حساب Azure Storage، يمكن الوصول إليه على HTTPS://cdndocdemo.blob.core.windows.net/publicblob/lorem.txt. إذا تمكنت من تحميل محتويات هذا الملف بنجاح، فإنه يجتاز الاختبار.

نجاح!

تحذير

رغم أن هذه هي الطريقة الأسرع والأسهل للتحقق من أن ملفك متاح للجمهور، إلا إن بعض تكوينات الشبكة في مؤسستك قد تجعل الملف متاحاً للجمهور عندما يكون، في الواقع، مرئياً فقط لمستخدمي شبكتك (حتى لو كانت مستضافة في Azure). للتأكد من أن هذا ليس هو الحال، اختبر الملف باستخدام مستعرض خارجي، مثل جهاز محمول غير متصل بشبكة مؤسستك، أو جهاز ظاهري في Azure.

تحقق من إعدادات الأصل

بعد التحقق من أن الملف متاح للجمهور على الإنترنت، تحقق من إعدادات الأصل. في مدخل Microsoft Azure، استعرض للوصول إلى ملف تعريف شبكة تسليم المحتوى وحدد نقطة النهاية التي تقوم باستكشاف الأخطاء وإصلاحها. من صفحة Endpoint الناتجة، حدد الأصل.

صفحة نقطة النهاية مع تحديد الأصل

تظهر صفحة Origin.

صفحة Origin

نوع الأصل واسم المضيف

تحقق من صحة قيم نوع الأصل واسم مضيف الأصل. في هذا المثال، HTTPS://cdndocdemo.blob.core.windows.net/publicblob/lorem.txt، جزء اسم المضيف لعنوان ويب هو cdndocdemo.blob.core.windows.net، وهذا صحيح. نظرا لأن أصول Azure Storage وWeb App وCloud Service تستخدم قيمة قائمة منسدلة لحقل Origin hostname ، فإن الإملاءات غير الصحيحة ليست مشكلة. ومع ذلك، إذا كنت تستخدم أصلاً مخصصاً، فتأكد من كتابة اسم المضيف بشكل صحيح.

منافذ HTTP وHTTPS

تحقق من منافذ HTTP وHTTPS. في معظم الحالات، 80 و443 صحيحين، ولا تحتاج إلى أي تغييرات. ومع ذلك، إذا كان خادم الأصل يستمع إلى منفذ مختلف، يجب تمثيله هنا. إذا لم تكن متأكداً، فقم بعرض عنوان URL لملفك الأصلي. تستخدم مواصفات HTTP وHTTPS المنفذين 80 و443 كإعدادات افتراضية. في مثال URL، HTTPS://cdndocdemo.blob.core.windows.net/publicblob/lorem.txt، لم يتم تحديد منفذ، لذلك يتم افتراض الافتراضي 443 والإعدادات صحيحة.

ومع ذلك، افترض أن عنوان URL لملف الأصل الذي اختبرته سابقاً هو HTTP://www.contoso.com:8080/file.txt. لاحظ جزء : 8080 في نهاية مقطع اسم المضيف. يوجه هذا الرقم المستعرض لاستخدام المنفذ 8080 للاتصال بخادم الويب في www.contoso.com، لذلك تحتاج إلى إدخال 8080 في حقل منفذ HTTP. من المهم ملاحظة أن إعدادات المنفذ هذه تؤثر فقط على المنفذ الذي تستخدمه نقطة النهاية لاسترداد المعلومات من الأصل.

تحقق من إعدادات نقطة النهاية

في صفحة Endpoint، حدد الزر Configure.

صفحة نقطة النهاية مع تمييز زر التكوين

تظهر صفحة تكوين نقطة نهاية شبكة تسليم المحتوى.

تكوين الصفحة

البروتوكولات

بالنسبة إلى Protocols، تحقق من تحديد البروتوكول الذي يستخدمه العملاء. نظراً لأن نفس البروتوكول الذي يستخدمه العميل هو البروتوكول المستخدم للوصول إلى الأصل، فمن المهم تكوين منافذ الأصل بشكل صحيح في القسم السابق. تستمع نقطة نهاية شبكة تسليم المحتوى فقط إلى منافذ HTTP وHTTPS الافتراضية (80 و443)، بغض النظر عن منافذ الأصل.

لنعد إلى مثالنا الافتراضي باستخدام HTTP://www.contoso.com:8080/file.txt. كما تتذكر، حددت Contoso 8080 كمنفذ HTTP الخاص بها، ولكن لنفترض أيضا أنها حددت 44300 كمنفذ HTTPS الخاص بها. إذا أنشأوا نقطة نهاية باسم contoso، فسيكون اسم مضيف نقطة نهاية شبكة تسليم المحتوى الخاص بهم contoso.azureedge.net. طلب HTTP://Contoso.azureedge.net/file.txt هو طلب HTTP، لذا ستستخدم نقطة النهاية HTTP على المنفذ 8080 لاسترداده من الأصل. قد يتسبب الطلب الآمن عبر HTTPS، HTTPS://Contoso.azureedge.net/file.txt، في أن تستخدم نقطة النهاية HTTPS على المنفذ 44300 عند استرداد الملف من الأصل.

عنوان المضيف الأصل

عنوان مضيف الأصل هو قيمة رأس المضيف المرسلة إلى الأصل مع كل طلب. في معظم الحالات، يجب أن تكون هذه القيمة هي نفسها اسم مضيف الأصل الذي تحققنا منه سابقا. لا تتسبب القيمة غير الصحيحة في هذا الحقل في حدوث 404 حالات، ولكن من المحتمل أن تتسبب في حالات 4xx أخرى، اعتمادا على ما يتوقعه الأصل.

مسار الأصل

أخيراً، يجب أن نتحقق من مسار الأصل. يكون هذا المسار فارغا بشكل افتراضي. يجب استخدام هذا الحقل فقط إذا كنت تريد تضييق نطاق الموارد المستضافة الأصل التي تريد توفيرها على شبكة تسليم المحتوى.

في مثال نقطة النهاية، أردنا أن تكون جميع الموارد في حساب التخزين متاحة، لذلك تم ترك مسار الأصل فارغاً. لذلك، ينتج عن طلب الاتصال HTTPS://cdndocdemo.azureedge.net/publicblob/lorem.txt من نقطة النهاية إلى cdndocdemo.core.windows.net التي تطلب /publicblob/lorem.txt. وبالمثل، ينتج عن طلب HTTPS://cdndocdemo.azureedge.net/donotcache/status.png نقطة النهاية التي تطلب /donotcache/status.png من الأصل.

ولكن ماذا لو كنت لا تريد استخدام شبكة تسليم المحتوى لكل مسار على أصلك؟ لنفترض أنك تريد فقط كشف مسار الكائن الثنائي كبير الحجم العام. إذا أدخلنا /publicblob في حقل مسار الأصل، فسيتسبب ذلك في إدراج نقطة النهاية /publicblob قبل كل طلب يتم إجراؤه على الأصل. لذلك يأخذ الطلب HTTPS://cdndocdemo.azureedge.net/publicblob/lorem.txt في الوقت الحالي جزء الطلب من عنوان URL و /publicblob/lorem.txt وإلحاق /publicblob بالبداية. ينتج عن طلب / publicblob/publicblob/lorem.txt من الأصل. إذا لم يتم حل هذا المسار إلى ملف فعلي، فإن الأصل يرجع حالة 404. سيكون عنوان URL الصحيح لاسترداد lorem.txt في هذا المثال هو HTTPS://cdndocdemo.azureedge.net/lorem.txt. لا نقوم بتضمين مسار /publicblob على الإطلاق، لأن جزء الطلب من عنوان URL هو /lorem.txt ونقطة النهاية تضيف /publicblob، مما يؤدي إلى /publicblob/lorem.txt يكون الطلب الذي تم تمريره إلى الأصل.