كيفية استخدام خادم Apache واحد لاستضافة مواقع ويب متعددة – CloudSavvy IT
استضافة افتراضية Apache هي ميزة تسمح لك باستضافة عدة مواقع مستقلة من تثبيت Apache واحد. يحتوي كل موقع على دليل نظام الملفات الخاص به واسم المجال. يمكنك توفير مواقع مختلفة للزوار المختلفين بناءً على المجال الذي يستخدمونه.
المضيف الظاهري يستخدم
التوجيهات في ملف تكوين Apache.عادة ما يتم تخزينها في ملفات sites-out there
الدليل في موقع تثبيت Apache.في أنظمة دبيان ، عادةً ما يكون /and so forth/apache2
؛ قد تستخدم التوزيعات الأخرى /and so on/httpd
.
نفترض أنك قمت بالفعل بتشغيل Apache. سننشئ مضيفين افتراضيين منفصلين ، a.example.com
مع b.illustration.com
. لا يوجد حد لعدد المضيفات الظاهرية التي يمكنك استخدامها – إذا كنت بحاجة إلى أكثر من عشرة مواقع على خادم واحد ، فإن Apache سيتولى الالتزام.
تكوين الموقع
يحتاج كل موقع إلى دليل نظام الملفات الخاص به. ستضع ملفات موقع الويب الخاص بك (مثل HTML و CSS وجافا سكريبت) في هذا الدليل.تسمى DocumentRoot
تم توفيره بواسطة Apache ، لأنه أصل توفير الوثائق.
يمكنك العثور على الموقع في أي مكان على النظام.سترى غالبًا مضيفات افتراضية مخزنة فيه /var/www
، كل موقع له مجلده الخاص:
sudo mkdir -p /var/www/a.instance.com sudo mkdir -p /var/www/b.example.com
/var/www
عادة بواسطة root
، لذلك نحن نستخدم sudo
إنشاء الدلائل الفرعية. بعد ذلك ، قم بتغيير ملكية الدليل الجذر للمستند إلى المستخدم الخاص بك وقم بتعيين الأذونات المناسبة. سيسمح هذا لأباتشي بقراءة الملف مع منحك حق الوصول للكتابة حتى تتمكن من إضافة المحتوى.
sudo chown -R $Person:$User /var/www/a.illustration.com sudo chown -R $User:$Person /var/www/b.case in point.com sudo chmod -R 755 /var/www
انسخ ملفات موقع الويب الخاص بك إلى الدليل.سوف نستخدم اثنين بسيط index.html
ملف:
a.instance.com/index.html
a.instance.com
b.case in point.com/index.html
b.example.com
تكوين Apache
الآن يمكنك تكوين المضيف الظاهري. قم بإنشاء ملف مضيف افتراضي جديد لكل موقع. الملف المسمى ليس مهما. وفقًا للاتفاقية ، عادةً ما يتطابق مع اسم مضيف موقع الويب الخاص بك.
يحتاج كل مضيف افتراضي إلى الإعلان عن سمتين على الأقل:
ServerName
– سيتم توفير اسم المضيف (المجال) للموقع من.DocumentRoot
-موقع نظام الملفات الذي سيخدمه هذا المضيف الظاهري.
هذا نموذج تكوين لموقعينا:
/and so on/apache2/web-sites-available/a.example.com.conf
ServerName a.instance.com DocumentRoot /var/www/a.example.com
/and many others/apache2/websites-readily available/b.instance.com.conf
ServerName b.example.com DocumentRoot /var/www/b.case in point.com
هذا الإعداد الأساسي كافٍ لجعل كلا الموقعين يعملان بشكل صحيح!هذا *:80
هذا يعني أن Apache سينظر في استخدام هذا المضيف الظاهري للتعامل مع أي طلبات تصل إلى المنفذ 80. ServerName
بيان.
تمكين المضيف الظاهري
أضف مضيفًا افتراضيًا إلى internet sites-out there
منجز صالح للإستعمال لكنها غير نشطة. تحتاج إلى تمكين كل موقع تريد استخدامه يدويًا.يجب ربط تكوين المضيف الظاهري المُمكّن بـ /and so forth/apache2/sites-enabled
(أو /and so forth/httpd/internet sites-enabled
).
في أنظمة دبيان ، يمكنك استخدام ملفات a2ensite
أمر لتبسيط هذه الخطوة:
a2ensite a.case in point.com a2ensite b.example.com
في التوزيعات الأخرى ، يرجى استخدام ln
أمر لإنشاء ارتباط رمزي يدويًا.
sudo ln -s /etcetera/httpd/web pages-readily available/a.example.com.conf /and many others/httpd/web-sites-enabled/a.case in point.com.conf sudo ln -s /and many others/httpd/web-sites-accessible/a.case in point.com.conf /and many others/httpd/websites-enabled/b.instance.com.conf
أخيرًا ، أعد تشغيل Apache لتطبيق التكوين الجديد.بعد إضافة تغييرات المضيف الظاهري إلى المضيف الظاهري ، يجب إعادة تشغيل الخادم internet sites-enabled
.
sudo apache2ctl restart
الآن ، يجب أن تكون قادرًا على رؤية Apache يخدم موقعين مختلفين.إذا لم تقم بحل DNS للخادم ، فيمكنك تعديل النظام /and many others/hosts
ملف لاختبار الإعدادات الخاصة بك.
أضف السطر التالي إلى /and so forth/hosts
:
127...1 a.example.com 127...1 b.instance.com
سيؤدي ذلك إلى إجبار كلا المجالين على العودة إلى نظامك. يمكنك الآن الوصول إليها في متصفحك لعرض صفحتين مختلفتين “استضافة افتراضية”.
الاسم المستعار للموقع
أذا أردت تطابق الموقع على مجالات متعددة ، الرجاء استخدام ServerAlias
تعليمات في المضيف الظاهري. عندما يطابق Apache المضيفين الظاهريين بالطلبات الواردة ، سيتم النظر في كل اسم مستعار.إذا طلب Host
رأس يطابق واحد ServerAlias
أو ServerName
.
ServerName a.instance.com ServerAlias instance.com ServerAlias www.instance.com DocumentRoot /var/www/a.illustration.com
هذا المثال سيكون a
المواقع على ثلاثة مجالات دون تكرار أي تفاصيل التكوين.أنت يجب أن استعمال ServerAlias
تحديد مجالات متعددة – تكرار ServerName
ربما ، لكنها ستغطي الاستخدامات المبكرة.
خيارات التكوين الأخرى
يمكن استخدام العديد من خيارات تكوين خادم Apache مع المضيفين الظاهريين. عندما يستخدم Apache مضيفين افتراضيين لمعالجة الطلبات ، فإنهم سيتجاوزون إعدادات الخادم العالمية.
ServerName a.instance.com DocumentRoot /var/www/a.instance.com DirectoryIndex my-index.html AllowOverride All Possibilities -Indexes Need all granted ErrorLog $APACHE_LOG_DIR/error.log CustomLog $APACHE_LOG_DIR/entry.log merged
سيتم تطبيق المزيد من الإعدادات على هذا المضيف الظاهري. my-index.html
يتم توفيره بشكل افتراضي ، لا index.html
، واستخدام موقع تسجيل مخصص.بالإضافة إلى ذلك ، استخدم Directory
ممنوع. .htaccess
السماح بالتغطية (AllowOverride All
) ، ويتم تعطيل صفحة قائمة دليل Apache الافتراضية (Possibilities -Indexes
).
مضيف عنوان IP
بالإضافة إلى المضيفات القائمة على الأسماء التي رأيناها حتى الآن ، يدعم Apache أيضًا المضيفات المستندة إلى IP. عندما يكون للخادم واجهات متعددة للشبكة (مثل الشبكة الداخلية للشركة والإنترنت العام) ، فإن المضيف المستند إلى IP هو الخيار الأمثل. يمكنك تقديم خدمات لمواقع أخرى بناءً على واجهة الشبكة المستخدمة.
ServerName a.case in point.com DocumentRoot /var/www/a ServerName b.example.com DocumentRoot /var/www/b ServerName a.illustration.com DocumentRoot /var/www/a2 في هذا المثال،
a.example.com
من خلال الواجهة مع IP192.168.0.1
ستتلقى محتوى مختلفًا عن المحتوى المرسل عبر172.17.0.1
.بالإضافة إلى ذلك ، سيتمكن مستخدمو IP الأخير من الوصولb.example.com
.لن يتعرض الموقع للمستخدمين الذين يتصلون عبر192.168.0.1
.تتيح لك هذه الطريقة استخدام خادم لشبكة الإنترانت الخاصة بالشركة والمواقع العامة. اربط الموقع الداخلي بـ LAN IP الخاص بالخادم ؛ قم بتشغيل المضيف العام بناءً على عنوان WAN الخاص به.
مطابقة المضيف الظاهري
إجراءات حل مضيف Apache الافتراضية موثقة جيدًا وبسيطة جدًا.
عادة ، سيحاول Apache المطابقة
Host
عنوان الطلب المستهدفServerName
أوServerAlias
الحقول في تكوين المضيف الظاهري.إذا كان هناك العديد من التطابقات ، فسيستخدم Apache ملفات أولا يطابق المضيف الظاهري الذي تم العثور عليه.يتم فرز المضيفين الظاهريين بترتيب اسم الملف.اذا أنت يحتاج موقع يجب مطابقته أولاً ، يرجى إعادة تسمية ملف التكوين الخاص به بحيث يتم فرزه قبل الموقع الهدف.يمكنك إضافة بادئة رقم ، على سبيل المثال
000-a.example.com.conf
. في معظم الحالات ، هذا غير ضروري - إذا كانت جميع مواقعك تحتوي على مجالات فريدة ، فلن تواجه أبدًا أي تعارضات.ختاما
تسمح لك استضافة أباتشي الافتراضية بتحليل التكوين متعدد المواقع إلى ملفات تعريف مستقلة.يمكنك تمكين وتعطيل كل موقع بشكل مستقل عن طريق ربطه بكل موقع
sites-enabled
.تتوفر العديد من خيارات التكوين للمضيفين الظاهريين. يمكنك تجاوز بعض إعدادات خادم Apache على أساس كل مضيف ، بحيث يمكنك التحكم بشكل كامل في كل إعداد موقع افتراضي.