بمجرد استخدامك للاستضافة عبر الإنترنت، ستريد على الأرجح معرفة كيفية استضافة مواقع متعددة على خادم واحد. قد يبدو الأمر معقداً في البداية، لكنك ستدرك مع التعمق في الموضوع أن بإمكانك تحقيقه بمساعدة الأدلة التقنية.
توفر خوادم الويب المختلفة خدمات مجانية ومفتوحة المصدر مستخدمة على نطاق واسع حول العالم. لكن قبل أن نشرح كيفية استضافة مواقع متعددة على خادم واحد، علينا أولاً أن نفهم ما هو خادم الويب وكيف يعمل.
ما خادم الويب؟
يقوم خادم الويب بتخزين المحتوى وتقديمه للمستخدمين، سواء أكان نصوصاً أم صوراً أم مقاطع فيديو أم بيانات تطبيقات. بمعنى آخر، يمكن لأي عميل يطلب هذا المحتوى الوصول إليه عبر خوادم الويب. ومن أبرز هؤلاء العملاء متصفح الويب، الذي يطلب البيانات من موقعك في كل مرة ينقر فيها المستخدم على رابط أو يُنزّل ملفاً.
يتواصل خادم الويب مع متصفح الويب عبر بروتوكول نقل النص التشعبي (HTTP) ويُشفَّر محتوى معظم صفحات الويب بلغة HTML. وقد يكون المحتوى ثابتاً كالنصوص والصور، أو ديناميكياً كقائمة المنتجات التي اختارها العميل للشراء. تدعم معظم خوادم الويب لغات البرمجة من جانب الخادم لتضمين منطق العمل في الاتصال وتقديم محتوى ديناميكي. ومن اللغات الشائعة في هذا السياق: Active Server Pages (ASP)، وJavaScript، وPHP، وPython، وRuby.
كيف يعمل خادم الويب؟
تعمل خوادم الويب وفق نموذج العميل-الخادم ففي هذا الهيكل المعياري، يقوم العميل يطلب موردًا أو خدمةً من الخادم.
تمر خوادم الويب بعدة خطوات لمعالجة طلبات العملاء:
- عندما يريد المستخدم تحميل محتوى في الموقع، يطلب متصفح الويب الوصول (طلب HTTP) عبر الإنترنت.
- يبحث متصفح الويب عن عنوان IP للموقع المطلوب، ويترجم URL لصفحات الويب باستخدام نظام أسماء النطاقات (DNS) أو بالبحث في ذاكرة التخزين المؤقت. تساعدك هذه العملية على تحديد موقع الخادم الذي تُستضاف عليه ملفات الموقع.
- عند هذه النقطة، يستقبل خادم الويب طلب HTTP ويعالجه عبر خادم HTTP.
- بمجرد أن يقبل خادم HTTP الطلبَ، يبحث في ملفات الخادم للحصول على البيانات ذات الصلة.
- يُعيد خادم الويب ملفات الموقع إلى المتصفح الذي أرسل الطلب، وبعد ذلك يرى المستخدم محتوى الموقع.
تجدر الإشارة إلى أنه إذا فشل خادم HTTP في العثور على الملفات المطلوبة أو معالجتها، فستظهر رسالة خطأ في متصفح الويب. والآن بعد أن تعرفت على المفاهيم الأساسية لخوادم الويب، يمكنك بسهولة تعلم كيفية استضافة عدة خوادم ويب على خادم واحد.
استضافة مواقع متعددة على خادم واحد: Apache
إذا أردت استضافة أكثر من موقع على خادم واحد، فعليك استخدام ملفات المضيف الافتراضي في Apache لتحديد النطاق المراد استخدامه. يُعدّ أسلوب المضيفات الافتراضية المستندة إلى الاسمأحد طرق معالجة طلبات المواقع. عندما يزور شخص ما موقعك، يصل الطلب إلى الخادم الذي يحدد ملفات أي موقع سيُقدّمها بناءً على اسم النطاق. تتيح لك هذه التقنية استضافة مواقع متعددة على خادم واحد بعنوان IP مشترك. يشرح هذا المقال كيفية إعداد ملف المضيف الافتراضي لكل نطاق من نطاقاتك. قبل الخوض في التفاصيل، تذكر أنه يجب تسجيل الدخول بحساب root.
اقرأ أيضاً: “استضافة Linux مقابل Windows: أيهما أنسب لك؟”
الخطوة الأولى: إنشاء مجلد لكل موقع
أولاً، ثبّت apache2 باستخدام هذا الأمر
للأنظمة المستندة إلى Debian
apt install apache2 -y
للأنظمة المستندة إلى CentOS
yum install apache2 -y
يجب إنشاء مجلد مخصص لكل موقع ستستضيفه (داخل مجلد /var/www). استخدم domain.com و domain2.com كأسماء للنطاقات.
mkdir -p /var/www/domain.com/public_html
mkdir -p /var/www/domain2.com/public_html
الخطوة الثانية: تعيين أذونات المجلد
chmod -R 755 /var/www
الخطوة الثالثة: إعداد صفحة الفهرس
لعرض الصفحة الرئيسية، تأكد من أن index.html يتم إنشاء ملف لكل نطاق. يمكنك تعيين شيء بسيط مثل اختبار للنطاق domain.com في هذا الملف.
vim /var/www/domain.com/public_html/index.html
اختبار للنطاق domain.com
الآن يجب عليك الحفظ والخروج باستخدام هروب والكتابة: wq
يمكنك استخدام الأمر أدناه لتكرار جميع هذه الخطوات للنطاق الثاني.
vim /var/www/domain2.com/public_html/index.html
الخطوة الرابعة: نسخ ملف الإعداد لكل موقع
يجب عليك نسخ ملف الإعداد الافتراضي لكل موقع، للحرص على الاحتفاظ دائماً بنسخة افتراضية لإنشاء المواقع مستقبلاً.
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/domain.com.conf
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/domain2.com.conf
الخطوة الخامسة: تعديل ملف الإعداد لكل موقع
على الأقل ستقوم بتعديل وإضافة الأسطر المُبرزة داخل <VirtualHost *:80> و وسوم </VirtualHost>.
لاحظ أن ServerAlias هو الاسم البديل للنطاق الخاص بك؛ في هذه الحالة وفي معظم الحالات، تضع www أمام اسم النطاق حتى يتمكن الآخرون من الوصول إلى الموقع سواء بـ www أو بدونها (ServerName).
vim /etc/apache2/sites-available/domain.com.conf

الخروج والحفظ مجدداً باستخدام wq. يجب عليك تكرار هذه العملية للملف domain2.com.conf ؛ تأكد من تحديث ServerName, ServerAlias، و DocumentRoot للنطاق الثاني الخاص بك.
اقرأ أيضاً: “Apache vs NGINX”
الخطوة السادسة: تفعيل ملف الإعداد
خادمك مُعدٌّ بشكل افتراضي لقراءة ملف 000-default.conf. غير أننا في الخطوة السابقة أنشأنا ملف إعداد جديداً لكل نطاق. لذا، سنحتاج إلى تعطيل الملف الافتراضي واستخدام الملف المناسب للإعداد الجديد.
a2dissite 000-default.conf
يمكنك ربط خادمك بنطاقاتك عن طريق تفعيل كل ملف من ملفات .conf التي أنشأتها حديثاً.
a2ensite domain.com.conf
a2ensite domain2.com.conf
الآن، لنعد تشغيل Apache لتفعيل التغييرات التي أُجريت عليه.
systemctl restart apache2
الخطوة السابعة: التحقق من إعدادات Apache
بعد تشغيل Apache، يمكنك التحقق من أن الإعدادات تعمل بشكل صحيح عن طريق تعديل ملف /etc/host على جهازك أو عبر DNS الخاص بنطاقك.
بعد ضبط كل جانب من الجوانب، يمكنك فتح موقعك في المتصفح للاطلاع على صفحات index.html التي أنشأتها في الخطوة الثالثة.
اقرأ أيضاً: On-Premises مقابل السحابة
استضافة مواقع متعددة على خادم واحد: IIS
يمكن استخدام خادم ويب IIS (Internet Information Services) لاستضافة عشرات أو حتى مئات المواقع. يمكنك استضافة مواقع متعددة عليه، وستعمل جميعها على نفس منفذ TCP. غير أن واجهة IIS Manager تتيح لك إضافة مواقع أخرى دون الحاجة إلى ربطها بمنفذ مختلف كالمنفذ 8080. يشرح هذا القسم كيفية استضافة مواقع متعددة على خادم IIS واحد وربطها بنفس المنفذ وعنوان IP، أو بعناوين IP مختلفة.
كيفية تثبيت IIS على خادم Windows؟
عند تثبيت IIS على Windows، يُنشأ تلقائياً موقع افتراضي فارغ يستمع على المنفذ القياسي للويب HTTP - المنفذ TCP 80. من الناحية التقنية، يرتبط الموقع بالمنفذ TCP/80. للوصول إليه، أدخل اسم خادم IIS ("http://web-srv1") أو عنوان IP الخاص به ("http://192.168.1.100") في المتصفح.
الخطوة الأولى: ربط موقع IIS
يمكن لخادم IIS العامل على Windows Server استضافة مواقع متعددة، لكن IIS لا يوزّع طلبات HTTP بشكل صحيح إلا إذا كان كل موقع يملك قيمة فريدة تميّزه. يتضمن كل موقع في IIS ثلاثة سمات تشكّل مجتمعةً مفتاحاً فريداً له، وهي:
- رقم منفذ TCP
- عنوان IP
- ترويسة المضيف (hostname)
تُخزَّن معلومات المواقع المستضافة في السمة ServerBindings الخاصة بـ Metabase في IIS، وصيغتها كالتالي: IP:المنفذ:اسم المضيف. لذا، إن أردت استضافة مواقع متعددة على خادم واحد باستخدام نفس المنفذ وعنوان IP، فيجب عليك استخدام ترويسة مضيف فريدة.
قد تتساءل: ما هو ترويسة المضيف (Host Header)؟ ترويسة المضيف هي جزء من طلب HTTP المُرسَل إلى الخادم، وتحدد الموقع الإلكتروني المقصود. لذلك، يجب الإشارة إلى هذه الترويسة على مستوى خادم الويب. تأكد من أن DNS يحتوي على سجل صحيح يطابق اسم المضيف وعنوان IP لخادم IIS.
لنفترض الآن أن لديك موقعاً إلكترونياً يعمل على خادم IIS ويستمع على المنفذ 80. ماذا تفعل إذا أردت ربط موقع ثانٍ بالمنفذ نفسه؟
الخطوة الثانية: ربط موقع IIS الثاني
في مدير خدمات معلومات الإنترنت (IIS Manager)، أنشئ موقعاً جديداً عبر نافذة Add Website وسمِّه TestSite؛ سيكون مسار هذا الموقع هو C:\inetpub\TestSite. انتبه إلى عدم تحديد اسم المضيف في هذه المرحلة.
بعد نسخ محتوى الموقع في C:\inetpub\افتح مجلد TestSite، ثم شغِّل مدير خدمات معلومات الإنترنت (IIS Manager)، وفي قسم اسم المضيف الخاص بالخادم أضف الموقع لفتح معالج الإعداد.


بعد النقر على Ok، ستظهر رسالة تحذيرية تفيد بأنه لا يمكن استخدام binding *:80 لكلا الموقعين في الوقت نفسه.


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

استضافة Windows VPS
اطّلع على خطط Windows VPS لدينا بأسعار معقولة، مع أجهزة قوية وزمن استجابة منخفض ونسخة مجانية من Windows بحسب اختيارك!
احصل على Windows المجانياستضافة مواقع متعددة على خادم IIS باستخدام ترويسات المضيف
يجب اختيار اسم مضيف (Host Name) مختلف للموقع الثاني على IIS لإنشاء ربط فريد. للقيام بذلك، انقر بزر الماوس الأيمن على TestSite ثم اختر تحرير Bindings، ثم حدد الربط المطلوب وانقر على تحرير.
كما يتضح في الصورة التالية، يجب تحديد اسم المضيف الفريد الذي يتعرف عليه المستخدم. في هذا الدليل نستخدم TestSite؛ لذا أدخله في حقل Hostname.

يمكنك استخدام موجه الأوامر لضبط إعدادات ربط موقع IIS. إذا كنت تستخدم IIS 7 أو إصداراً أحدث، فستظهر لك نتيجة مشابهة لما يلي بعد تشغيل الأمر الخاص بضبط ربط موقع IIS:
C:\Windows\System32\inetsrv\appcmd.exe set site /site.name:testsite /+bindings.[protocol='http',bindingInformation='*:80:testsite']
بالمثل مع الموقع الأول، يمكنك تشغيل الموقع الثاني أيضاً.

عند هذه النقطة، يجب إضافة اسم مستعار DNS للخادم (سجل A أو CNAME)، يشير إلى عنوان IP أو اسم مضيف خادم IIS. إذا كنت تستخدم نطاق Active Directory، فأنت بحاجة إلى إنشاء سجلات DNS على وحدة التحكم بالنطاق. يتيح لك IIS إنشاء سجل CNAME للاسم TestSite في وحدة تحكم DNS (dnsmgmt.msc) وتعيين اسم النطاق الخاص بخادم IIS كمضيف هدف FQDN.

يمكنك أيضاً إنشاء سجل DNS هذا عبر PowerShell بالأمر التالي:
Add-DnsServerResourceRecordCName -HostNameAlias web-srv1.woshub.com -Name testsite -ZoneName woshub.com
لنجرب فتح http://TestSite في المتصفح. إذا تمت جميع الخطوات بشكل صحيح، يجب أن يفتح الموقع بنجاح.

استضافة Linux بكل يسر
هل تبحث عن طريقة أفضل لاستضافة مواقعك وتطبيقاتك؟ أو تطوّر شيئاً جديداً؟ أو ببساطة لا تميل إلى Windows؟ لهذا أوجدنا Linux VPS.
احصل على Linux VPSتشغيل مواقع متعددة بعناوين IP مختلفة على خادم IIS
الآن لنتحدث عن تشغيل موقعين على خادم IIS باستخدام عناوين IP مختلفة. أولاً، يجب إضافة واجهة VLAN منفصلة على خادم Windows أو تعيين عنوان IP إضافي (اسم مستعار) لبطاقة الشبكة NIC.
في هذا الدليل، يمتلك الخادم عنوان IP الأساسي 192.168.13.100، وسنضيف اسم مستعار IP هو 192.168.13.101 على محول الشبكة نفسه:
Get-NetIPAddress | ft IPAddress, InterfaceAlias, SkipAsSource
New-NetIPAddress –IPAddress 192.168.13.101 –PrefixLength 24 –InterfaceAlias “Ethernet” –SkipAsSource $True
الآن يجب إنشاء سجل A لموقعك الجديد على خادم DNS:
Add-DnsServerResourceRecordA -Name NewSite3 -IPv4Address 192.168.13.101 -ZoneName woshub.com -TimeToLive 01:00:00 –CreatePtr
يبقى عليك فتح إعدادات ربط الموقع وربطه بعنوان IP الإضافي للمضيف. يمكنك إدارة ربط المواقع على خادم IIS باستخدام PowerShell، ويُستخدم لذلك وحدة WebAdministration:
Import-Module WebAdministration
يمكنك عرض معلومات جميع مواقع IIS المتاحة وعمليات الربط الخاصة بها:
Get-IISSite
أو معلومات موقع واحد فقط:
(Get-Website -Name NewSite).bindings.Collection

استخدم الأمر التالي لتغيير ربط هذا الموقع؛ يتيح لك تغيير عناوين IP أو المنفذ أو الاسم:
Set-WebBinding -Name NewSite1 -BindingInformation "192.168.13.101:80:NewSite1" -PropertyName 'Port' -Value '8080'
Set-WebBinding -Name NewSite1 -BindingInformation "192.168.13.101:8080:NewSite1" -PropertyName 'IPAddress' -Value '192.168.13.100'
يمكنك تشغيل هذا الأمر لإضافة ربط جديد لموقع IIS محدد:
New-IISSiteBinding -Name NewSite1 -BindingInformation "*:9090:" -Protocol http
يتم حذف الربط بالأمر التالي:
Remove-IISSiteBinding -Name NewSite1 -BindingInformation "*:9090:"
كما رأيت هنا، يمكنك تشغيل مواقع ويب متعددة على خادم الويب IIS، سواء على عناوين IP مختلفة أو على عنوان IP واحد ورقم منفذ TCP.
خلاصة القول: استضافة مواقع متعددة على خادم واحد
يتناول هذا المقال المفاهيم الأساسية للخوادم، ويشرح كيفية استضافة مواقع ويب متعددة على خادم واحد. كما نقدم حلول Linux VPS استضافة متعددة تتيح لك تشغيل مواقع مختلفة على خادم واحد. تُقلّل خطط Cloudzy من تكلفة امتلاك خوادم متعددة، مع منحك المرونة الكاملة في استخدام خدماتنا. فضلاً عن ذلك، يمكنك ترقية موارد خادمك بسهولة، بما في ذلك RAM والتخزين والمعالج وعرض النطاق الترددي.
الأسئلة الشائعة
هل يمكن استضافة مواقع متعددة على خادم ويب واحد؟
إذا كان لديك خادم بموارد كافية، كمساحة HDD وRAM وقدرة معالجة CPU، فبإمكانك استضافة مواقع ويب متعددة باستخدام الاستضافة الافتراضية. ولا يوجد حدٌّ لعدد المواقع التي يمكنك استضافتها على خادم الويب الخاص بك.
كيف يمكن تشغيل موقعين على خادم واحد؟
استضافة مواقع ويب متعددة على خادم ويب واحد تُعرف بالخادم الافتراضي. تأكد من أن الخادم الذي اخترته يمتلك موارد كافية للتعامل مع حركة المرور ومتطلبات مساحة القرص.
ما الغرض من خادم VPS؟
VPS هي خدمة استضافة توفر لك موارد خاصة ومخصصة على خادم. والجدير بالذكر أن استخدام VPS أكثر أماناً واستقراراً مقارنةً بالاستضافة المشتركة، التي لا تمنحك مساحة خادم مخصصة.
لماذا يستخدم الناس VPS؟
باتت استضافة VPS خياراً شائعاً، إذ تتميز بتكلفة أقل من الاستضافة المخصصة، مع موثوقية وأمان وأداء أفضل من الاستضافة المشتركة.