مضيفات Apache الافتراضية ، كيف يمكننا تكوينها في Ubuntu 20.04

حول المضيف الظاهري اباتشي

في المقالة التالية سوف نلقي نظرة على Apache Virtual Hosts. بادئ ذي بدء ، من الضروري شرح ذلك المضيف الظاهري هو توجيه تكوين Apache سيسمح لنا بتشغيل أكثر من موقع ويب على خادم واحد. حقيقة أنها تعمل على نفس الخادم الفعلي ليست واضحة للمستخدم النهائي.

باستخدام Virtual Hosts ، سنكون قادرين على تحديد جذر الموقع (الدليل الذي يحتوي على ملفات موقع الويب) ، وإنشاء سياسة أمان منفصلة لكل موقع ، واستخدام شهادات SSL مختلفة وغير ذلك الكثير.

سنرى في السطور التالية كيفية تكوين Apache Virtual Hosts على Ubuntu 20.04، ولهذا يجب علينا تلبية المتطلبات التالية قبل المتابعة ؛ واحد أو أكثر من أسماء المجالات التي تشير إلى IP الخاص بخادمك العام و Apache مثبت على Ubuntu.

إنشاء هيكل الدليل

جذر المستند هو الدليل الذي يتم فيه تخزين ملفات موقع الويب الخاصة باسم المجال وتقديمها استجابةً للطلبات. يمكننا تحديد الجذر في الموقع الذي يهمنا. كل مجال مستضاف على خادم اباتشي سيتم تعيين جذر المستند الخاص به إلى / var / www / domain-name / public_html.

فاموس أ ابدأ بإنشاء الدليل الجذر للنطاقين الذي سأستخدمه في هذا المثال:

إنشاء هيكل الدليل

sudo mkdir -p /var/www/dominio1.com/public_html
sudo mkdir -p /var/www/dominio2.com/public_html

أيضا سنقوم بإنشاء ملف index.html و ضمن دليل جذر المستند لكل مجال. سيظهر هذا عندما نزور المجال من المتصفح:

sudo vim /var/www/dominio1.com/public_html/index.html

داخل الملف ، سنقوم بلصق المحتوى التالي:

المجال رمز المنزل 1

 
<!DOCTYPE html>
<html lang="es">
  <head>
    <meta charset="utf-8">dominio1</title>
  </head>
  <body>    
<h1>Home del dominio1</h1>
  </body>
</html>

بالنسبة للمجال الثاني ، سنقوم بتحرير ملف index.html الخاص به وإضافته المحتوى التالي:

sudo vim /var/www/dominio2.com/public_html/index.html

المجال رمز المنزل 2

<!DOCTYPE html>
<html lang="es">
  <head>
    <meta charset="utf-8">dominio2</title>
  </head>
  <body>
<h1>Home del dominio2</h1>
  </body>
</html>

نظرًا لأن الأوامر المذكورة أعلاه يتم تشغيلها باستخدام sudo ، فإن الملفات والأدلة التي تم إنشاؤها حديثًا مملوكة لجذر. لتجنب مشاكل الإذن ، سنقوم بتغيير ملكية الدليل الجذر للنطاقات وجميع الملفات داخل هذه الأدلة إلى مستخدم apache (www-data):

sudo chown -R www-data: /var/www/dominio1.com
sudo chown -R www-data: /var/www/dominio2.com

إنشاء مضيفين افتراضيين

على أنظمة أوبونتو ، توجد ملفات تكوين Hosts الظاهرية لـ Apache في الدليل / الخ / apache2 / مواقع متاحة. يمكن تمكينهم من خلال إنشاء روابط رمزية إلى الدليل / الخ / apache2 / مواقع تمكين، الذي يقرأه Apache أثناء بدء التشغيل.

يمكننا تسمية ملفات التكوين كما نريد. ولكن أفضل ممارسة هي استخدام اسم المجال كاسم ملف تكوين المضيف الظاهري. سنقوم الآن بفتح محرر النصوص المفضل لدينا وإنشاء ملفات التكوين الأساسية. في المثال سأقوم فقط بعرض رمز المجال 1:

sudo vim /etc/apache2/sites-available/dominio1.com.conf

في الداخل سنضيف شيئًا مثل التالي ، لكن بالنسبة لـ domain2 ، سيتعين علينا تغيير domain1 إلى domain2 في الكود التالي:

المضيف الظاهري للمجال 1

<VirtualHost *:80>
    ServerName dominio1.com
    ServerAlias www.dominio1.com
    ServerAdmin webmaster@dominio1.com
    DocumentRoot /var/www/dominio1.com/public_html

    <Directory /var/www/dominio1.com/public_html>
        Options -Indexes +FollowSymLinks
        AllowOverride All
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/dominio1.com-error.log
    CustomLog ${APACHE_LOG_DIR}/dominio1.com-access.log combined
</VirtualHost>
  • اسم الخادم → ستشير إلى المجال الذي يجب أن يتطابق مع تكوين المضيف الظاهري هذا. شرق يجب أن يكون اسم المجال.
  • ServerAlias → الكل المجالات أو المجالات الفرعية الأخرى التي يجب أن تتطابق مع هذا المضيف الظاهري، مثل www.
  • جذر المستند → هنا سيشير إلى الدليل الذي سيخدم Apache الملفات منه.
  • خيارات → هذا التوجيه يتحكم في وظائف الخادم المتوفرة في دليل معين.
    • الفهارس → تجنب قوائم الدليل.
    • FollowSymLinks → عند تفعيل هذا الخيار ، سيتبع Apache الروابط الرمزية.
  • السماح بالتجاوز → ستحدد ماذا يمكن للتوجيهات المعلنة في ملف htaccess تجاوز توجيهات التكوين.
  • ErrorLog ، CustomLog → هنا سوف تحدد مواقع ملف السجل.

بمجرد حفظ الملفات ، لتمكين ملف المضيف الظاهري الجديد ، سنذهب إلى إنشاء ارتباط رمزي من ملف المضيف الظاهري إلى الدليل الممكّن بالموقع. سنفعل هذا باستخدام البرنامج النصي a2ensite:

a2ensite domain1

sudo a2ensite dominio1.com

الخيار الآخر هو إنشاء ارتباط رمزي يدويًا كما هو موضح في الآتي:

sudo ln -s /etc/apache2/sites-available/dominio1.com.conf /etc/apache2/sites-enabled/

بمجرد أن يتم ذلك ، يمكننا اختبر التكوين بحثًا عن أخطاء في بناء الجملة مع:

sudo apachectl configtest

إذا لم تكن هناك أخطاء ، فسنرى في الجهاز نتيجة مثل ما يلي:

بناء الجملة طيب

نواصل إعادة تشغيل خدمة Apache لتصبح التغييرات سارية المفعول:

sudo systemctl restart apache2

أخيرًا ، للتحقق من أن كل شيء يعمل على النحو المتوقع ، سنفتح URL http://dominio1.com في المتصفح وسنرى محتوى صفحة index.html الخاصة بـ domain1:

دومينو المنزل 1

باستخدام Virtual Hosts ، يمكننا استضافة مجالات متعددة على خادم Ubuntu واحد. يمكننا تكرار الخطوات الموضحة في الأسطر السابقة لإنشاء مضيفات افتراضية إضافية لجميع نطاقاتنا.

المضيفين الظاهري متصفح اباتشي

ما تم الكشف عنه في هذه المقالة هو مجرد شرح أساسي حول Virtual Host وتكوينه في Ubuntu. يمكن الحصول على مزيد من المعلومات في موقع اباتشي.


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.

  1.   كارلوس قال

    مرحبًا ، لقد ساعدني كثيرًا في أن أكون قادرًا على إنشاء مضيفات افتراضية ، ولكن عند تشغيل apachectl confitest ، تلقيت الخطأ التالي: "AH00558: apache2: تعذر تحديد اسم المجال المؤهل بالكامل للخادم بشكل موثوق ، باستخدام 127.0.1.1. قم بتعيين التوجيه "ServerName" بشكل عام لمنع هذه الرسالة
    بناء الجملة جيد »

    لا أعرف ما الخطأ الذي يمكن أن يكون