Apache HTTPD / أسس هوية الطلب والإعداد / الدرس 3
اختيار المضيف الافتراضي والاسم والافتراضي
افصل الاستماع والعنوان والاسم وDNS وهوية TLS.
في هذه الصفحة
أهداف الدرس
- شرح رجوع أول مضيف ضمن مجموعة العنوان.
- تمييز DNS وملف hosts عن تهيئة الموقع.
اختيار العنوان والاسم مرحلتان
تشارك المواقع عنواناً ومنفذاً وتختار الاسم وفق القواعد. يحدد Apache مجموعة العنوان ثم الاسم داخلها. قد يشترك Parcel والتوثيق بمستمع ويختلف الجذر والسياسة. يساعد DNS الوصول ولا ينشئ VirtualHost، ولا ينشر ServerName سجلاً أو يفتح مقبساً. لا يثبت ظهور الصفحة بعد تعديل اسم على العميل أن إعداد الموقع اكتمل؛ قد تكون صفحة افتراضية من مجموعة العنوان نفسها لا المحتوى الذي كان يقصده المراجع.
لأول مضيف مطابق أهمية
قد يجيب الأول ضمن المجموعة إذا لم يطابق الاسم، فيصبح للترتيب معنى. لا يكشف اسم غريب موقعاً حساساً عرضياً ولا تجعل wildcard حد تفويض. الاسم مدخل عميل لا هوية موثقة وحده. تضيف TLS اختيار شهادة وSNI قبل الطلب، ويأتي شرحها لاحقاً. ينبغي أن تحدد السياسة ما تفعله الأسماء غير المعروفة صراحة لا تعتمد على صدفة ترتيب ملفات الحزمة، لأن إضافة موقع جديد قد تغير الافتراضي دون تعديل ملف الموقع الذي بدأت منه المراجعة.
اقرأ تعريفين توضيحيين
يعلن المقطع اسمين وجذرين ومنفذاً افتراضيين، ويحذف Listen والوحدات والوصول والملفات والسياسة الكاملة ولا يُحمّل. لا يفتح منفذ أو ينشأ مجلد، والأسماء محجوزة. راجع الفعلي من العنوان والتضمين والاسم والبدائل والوصول والبروتوكول. حتى نجاح التحليل لا يثبت مسار العميل. يوضح التعريف أين يبدأ اختلاف الموقعين، لكنه لا يقدم موقعاً قابلاً للتشغيل ولا يعني أن مسارات القرص موجودة أو مسموحة لمستخدم الخادم.
<VirtualHost *:8080>
ServerName parcel.example.invalid
DocumentRoot "/lab/parcel/public"
</VirtualHost>
<VirtualHost *:8080>
ServerName docs.example.invalid
DocumentRoot "/lab/docs/public"
</VirtualHost>
يوضح الأول الرجوع ضمن المجموعة المعلنة وفق الإعداد الكامل. لا يفتح الاستماع أو يفوض الملفات أو يثبت TLS.
نمذج أسماء دقيقة بمجموعة واحدة
يختار البرنامج الكامل جذراً لأسماء صغيرة دقيقة أو أول عنصر. لا يحاكي wildcards أو أسبقية عنوان أو aliases أو نقطة نهائية أو منفذ أو HTTP أو TLS. يظهر الرجوع دون شبكة ولا يصلح مدقق أسماء إنتاجياً. احتفظ باسم الطلب والمضيف المختار من مسار مصرح في التشخيص الحقيقي. يثبت الناتج فقط ما تفعله المقارنة في القائمة المعلنة، ولا يدل على سجل DNS أو خدمة موجودة خلف الاسم الذي لم يُستخدم للاتصال هنا أصلاً.
sites = [("parcel.example.invalid", "parcel-root"), ("docs.example.invalid", "docs-root")]
def selected(host):
return next((root for name, root in sites if host == name), sites[0][1])
print(selected("docs.example.invalid"))
print(selected("unknown.example.invalid"))
docs-root
parcel-root
يقارن نصوصاً فقط دون DNS أو مقبس أو طلب أو محرك Apache أو TLS.
أثبت الموقع قبل تغيير المحتوى
قارن URL والوجهة والبروتوكول والاسم والمجموعة والترتيب وسجل الموقع. قد يختار IP مباشراً افتراضياً غير الاسم. وقد يغير وسيط Host أو الخلفية. لا يصلح تبديل الجذر باستمرار مساراً غير مثبت. اقصد الافتراضي وراجع الغريب والعادي قبل تغيير مصرح. يجب أن يحدد الدليل إن كان العميل يصل إلى هذه النسخة من Apache أصلاً، لأن تعديل الجذر الصحيح لا يؤثر في رد صادر من وسيط مخبأ أو مضيف آخر لم يقع ضمن مسار التحقيق.
الأخطاء الشائعة وإصلاحها
يُتوقع أن ينشئ DNS إعداد الموقع.
- لماذا يحدث؟
- اختلط الحل باختيار المضيف.
- كيف تصلحه؟
- راجع DNS وApache كمتطلبين مستقلين.
- كيف تتجنب تكراره؟
- وثق مسار العميل والمستمع والموقع.
يخدم الأول اسماً غريباً بلا توقع.
- لماذا يحدث؟
- لم يراجع الرجوع والتضمين.
- كيف تصلحه؟
- حدد المجموعة وسياسة الافتراضي.
- كيف تتجنب تكراره؟
- اختبر الغريب ضمن مراجعة التوجيه.
يُعد IP مباشر مكافئاً لاسم HTTPS.
- لماذا يحدث؟
- اختلف الاسم والشهادة والمسار.
- كيف تصلحه؟
- قارن المخطط والوجهة والاسم والبروتوكول المكافئ.
- كيف تتجنب تكراره؟
- اذكر إثبات كل ملاحظة.
اختبر فهمك
1. لماذا يرجع الاسم الغريب إلى parcel-root في النموذج؟
اعرض الحل المشروح
لا يوجد تطابق دقيق فيعيد أول عنصر. يوضح فكرة محدودة فقط؛ تحتاج الحقيقة قواعد العنوان والاسم والإعداد الكامل.
2. غيّر وسيط Host للخلفية. هل يتغير المضيف مع صحة DNS؟
اعرض الحل المشروح
نعم. قد يصل العميل للوسيط الصحيح ويختار الطلب المرسل موقعاً آخر. راجع عقد Host والأدلة ولا تغير DNS دون فرضية.
أهم ما تعلمته
- افصل DNS والاستماع والعنوان والاسم وTLS.
- اجعل ترتيب الافتراضي سياسة مراجعة صريحة.