ما هو الخادم وأنواعه
الخادم حاسوب مهمته الرد على طلبات الآخرين، ولذلك يبقى مشتغلا دائما؛ وعتاده ليس نوعا مختلفا عن حاسوبك، بل واجبه هو المختلف. وما نسميه «خادم الموقع» هو في الحقيقة طبقات فوق بعضها: عتاد، ونظام تشغيل، وخادم ويب، والبرنامج الذي يبني الصفحة.
- الدرس 7 من 12
- مبتدئ
- مجاني، دون تسجيل
ما نسميه «الخادم»، من الموقع إلى الحديد
- الموقعالطبقة الوحيدة التي يراها الزائر، والوحيدة التي كتبتها بنفسك.
- التطبيق ومفسّرهينفّذ شفرة الموقع ويبني الصفحة. وهو هنا PHP.
- قاعدة البيانات والذاكرة المؤقتةتحفظان المحتوى والإعدادات. وهما هنا MariaDB وRedis.
- خادم الويبيستقبل الطلب وينهيه بنفسه إن كان الملف جاهزا. وهو هنا nginx.
- نظام التشغيل والعتادالأساس. وعلى هذا الجهاز ليس له حتى سطح مكتب رسومي.
هذا الترتيب الطبقي ترتيب تعلّم لا معيار. وعلى الاستضافة المشتركة لا تكون الطبقات الثلاث السفلى في متناولك أصلا.
آخر مراجعة: تُراجع الحقائق وأسماء الأدوات في هذا الدرس مقابل مصادرها في هذا التاريخ.
بمَ يختلف الخادم عن حاسوب بيتك؟
في الجنس، لا شيء تقريبا. فلـلخادم معالج وذاكرة وقرص، وينفّذ التعليمات المألوفة نفسها. والفرق في الدور: حاسوبك ينتظرك، والخادم ينتظر بقية العالم. أنت تغلق حاسوبك ليلا؛ والخادم الذي يُغلَق لم يعد خادما.
ومن هذا الفارق الواحد في الدور تخرج بقية الفوارق، ولا شيء فيها سحري. فالخادم عادة بلا شاشة ولا لوحة مفاتيح لأن أحدا لا يجلس إليه. وكهرباؤه وشبكته مضاعفتان لأن انطفاءه يكلّف. وعتاده يقصد قطعا تعمل شهورا بلا توقف لا قطعا أسرع في لعبة. والنسخة المثبّتة عليه من نظام التشغيل لا تحمل شيئا زائدا؛ فعلى هذا الخادم لا يملك النظام حتى سطح مكتب رسوميا، وكل شيء يُنجز بالأوامر.
وينتهي هنا خطأ شائع: الخادم ليس صندوقا بعينه، بل دور. فحاسوب محمول قديم في زاوية غرفة هو خادم أيضا إن بقي مشتغلا وأجاب الطلبات. والذي يجعل الثمن مستحقا ليس الصندوق بل الاستمرارية: الكهرباء والشبكة والتبريد ومن يجيب في الثالثة فجرا.

حين يصل طلب، من الذي يجيب بالضبط؟
هنا تنقسم كلمة «خادم» إلى أشياء منفصلة، وما لم ترَ هذا الانقسام فلا مشكلة خادم قابلة للتشخيص. أولا يستقبل خادم الويب الطلب؛ وعلى هذا الجهاز يقوم بذلك nginx النسخة ١.٢٩.٤. فإن كان المطلوب ملفا جاهزا أنهاه هناك ولم يُشغَّل برنامج آخر. وإلا سلّم الطلب إلى مفسّر البرنامج، وهو هنا PHP النسخة ٨.٥.٢، الذي ينفّذ شفرة الموقع ويسأل في طريقه قاعدة البيانات والذاكرة المؤقتة.
والفارق بين المسارين قابل للقياس، ورقمه صادم. فالصفحة الأولى لهذا الموقع، حين تُجاب من ملف جاهز، تستغرق ٢٣ ميلي ثانية في أفضل الأحوال حتى يصل أول بايت منها. والصفحة نفسها، حين نُلزمها بأن تُبنى من جديد، تستغرق ١٣٩ ميلي ثانية في أفضل الأحوال. أي أن تلك الـ١١٦ ميلي ثانية الزائدة كلها لطبقة التطبيق وقاعدة البيانات، على الجهاز نفسه والشبكة نفسها والصفحة نفسها. وكون الصفحة تُبنى مسبقا أو تُبنى في كل زيارة هو أكبر قرار سرعة منفرد في موقع ووردبريس.
وطبقتان أخريان على المسار نفسه تُرَيان أقل. قاعدة البيانات، وهي هنا MariaDB النسخة ١٠.١١.١٠، وتحفظ المحتوى والإعدادات. وذاكرة مؤقتة في الرام، وهي هنا Redis، تحفظ أجوبة الاستعلامات المتكررة كي لا تقرأ قاعدة البيانات من القرص ثانية.
وتفصيل لا يكاد أي شرح يذكره: خادم الويب ومفسّر البرنامج على هذا الجهاز لا يتحدثان عبر الشبكة. فحديثهما يمر عبر ملف مقبس على القرص نفسه، وقاعدة البيانات مضبوطة على localhost. أي أن أيا من هذه المحادثات لا يصير حزمة في شبكة أبدا. وإن عرفت هذا، توقفت عن نسبة بطء صفحة إلى «الشبكة».
مسار طلب واحد، والموضع الذي يمكن أن ينتهي فيه مبكرا
-
1
يصل الطلب
يستقبله خادم الويب. ولم يُشغَّل أي برنامج بعد.
-
2
هل الملف جاهز؟ انتهى
يجيب خادم الويب بنفسه. وعلى هذا الموقع ٢٣ ميلي ثانية حتى أول بايت.
-
3
وإلا، يُنفَّذ التطبيق
يُشغَّل المفسّر وينفّذ شفرة الموقع من أولها.
-
4
يسأل قاعدة البيانات
والذاكرة المؤقتة، كي لا يُقرأ السؤال نفسه من القرص مرتين.
-
5
يُبنى الرد ويُرسَل
وعلى هذا الموقع ١٣٩ ميلي ثانية، أي ١١٦ أكثر من المسار القصير.
الرقمان هنا أدنى قيمة من خمس قياسات على هذا الخادم، ويتوقفان على قوة الجهاز وعلى الصفحة نفسها؛ والنسبة قابلة للتكرار، أما الرقمان فلا.
بمَ تختلف الخوادم المشتركة والافتراضية والمخصصة والسحابية؟
في جملة واحدة: كل درجة أعلى تمنحك تحكما أكثر وتضع على كتفيك المقدار نفسه من المسؤولية. والشطر الثاني هو الذي يضيع في الإعلانات.
على خادم مشترك، تجلس عشرات المواقع على جهاز واحد ويتولى غيرُك الطبقات السفلى. وليس لديك إلا ملفات وقاعدة بيانات. وهو رخيص ويكفي أكثر المواقع الصغيرة، وعيبه أن الجار الصاخب يؤثر فيك وأن الإعداد الذي تريده قد لا يكون في متناولك أصلا. وعلى خادم افتراضي يُقسَم جهاز مادي واحد إلى عدة أجهزة مستقلة وحصتك مضمونة؛ في المقابل نظام التشغيل صار لك، وتحديثه كذلك. والخادم المخصص هو الصندوق كله، بكل طاقته وكل مسؤوليته. أما السحابي فهو نموذج تسليم أكثر منه نوع عتاد: تأخذ الموارد بالساعة وتعيدها، وهو مبني لحمل يرتفع وينخفض فجأة.
وموقفنا بعد سنوات من استضافة مواقع العملاء: لا أحد تقريبا يحتاج إلى خادم افتراضي من أجل «القوة». والسبب الحقيقي للانتقال عادة أحد أمرين: إعداد صار لازما ولا تملكه الاستضافة المشتركة، أو صخب الجيران بلغ حدا صار معه سلوك الموقع غير متوقع. فإن لم يقع أي منهما، فالمال الأكثر لا يشتري سرعة أكثر عادة.
ولنذكر حدّ هذه النصيحة صراحة: كلفة الخادم الافتراضي ليست إيجاره الشهري فقط، بل وقت من يبقيه محدَّثا. فإن لم يوجد ذلك الشخص، كان الخادم الافتراضي المهمَل أخطر من الاستضافة المشتركة، لأن تحديثه لم يعد عمل أحد. واختيار الاستضافة وشراؤها ليسا موضوع هذا الدرس، وقد فُتحا في دليل اختيار الاستضافة ومقال الاستضافة المشتركة.
كل درجة تمنح من المسؤولية بقدر ما تمنح من التحكم
-
1
مشترك
ليس لديك إلا ملفات وقاعدة بيانات. وكل الطبقات السفلى عمل غيرك، والجار الصاخب مشكلة غيرك حتى تصل إليك.
-
2
افتراضي
حصتك مضمونة والإعدادات بيدك. في المقابل صار نظام التشغيل وتحديثه لك من اليوم.
-
3
مخصص
الصندوق كله لك ولا أحد غيرك عليه. وكلفته أيضا الصندوق كله، استعملته أم لا.
-
4
سحابي
نموذج تسليم أكثر منه نوع عتاد: تأخذ الموارد بالساعة وتعيدها. مبني لحمل يرتفع وينخفض فجأة، لا لموقع حركته ثابتة.
هذا السلم ليس مسار نمو وصعوده ليس هدفا. فأكثر المواقع تعمل جيدا على الدرجة الأولى، والصعود بلا سبب لا يضيف إلا عمل الصيانة.
لماذا يتوقف خادم عن العمل؟
الظن الشائع أن المعالج يمتلئ. وعمليا لا يكون هذا أبدا تقريبا. فالذي ينفد هو سعة التزامن: عدد العمال المسموح لهم بتنفيذ شفرة الموقع في اللحظة الواحدة.
وعلى هذا الخادم بعينه ضُبط هذا العدد وهو عشرون. أي أن عشرين طلبا على الأكثر يمكنها في أي لحظة أن تدخل طبقة التطبيق، وعلى الحادي والعشرين أن ينتظر. والآن افترض أن كلا من تلك العشرين يستغرق ثلاث ثوان بدل مئة ميلي ثانية، لأن استعلاما ثقيلا أو خدمة خارجية بطؤت. عندها تهبط سعتك فجأة من مئتي طلب في الثانية إلى نحو سبعة، دون أن يسخن المعالج أصلا. فينمو الطابور ويرتفع زمن الانتظار، ويبدو هذا من الخارج تماما كأن «الخادم سقط».
وثمة سقف ثانٍ يعرفه قليلون وهو مكتوب في المكان نفسه: لكل طلب ١٨٠ ثانية على الأكثر ثم يُقطع بلا رحمة. وهذه حماية جيدة، لأن طلبا معطوبا لا يستطيع أن يحتجز عاملا إلى الأبد. لكنها تعني أيضا أن الأعمال الطويلة، كأخذ نسخة احتياطية أو استيراد ملف كبير، تُقطع في منتصفها، وبلا رسالة خطأ واضحة. فإن كان عمل يفشل دائما عند نحو ثلاث دقائق، فلا تبحث عن خلل برمجي؛ لقد ارتطمت بالسقف.
والنتيجة العملية لهذين الرقمين قاعدة واحدة بسيطة: تسريع الصفحات لا يحسّن تجربة المستخدم فقط، بل يضاعف سعة الخادم، لأن كل عامل يتحرر أبكر. ولهذا فإن تخزين الصفحة مؤقتا، وقد رأيت فارقه في القسم السابق، قرار سعة أكثر منه تحسين سرعة.
ما الذي ليس من واجب الخادم؟
كُتب هذا القسم ليمنع أشيع طريقة لإهدار المال في هذا المجال. فالخادم الأقوى لا يجعل الصفحة الثقيلة خفيفة. وإن كانت صفحة تحمّل ثلاثة ميغابايت من الصور وتستدعي عشرين نصا برمجيا خارجيا، فمضاعفة معالج الخادم لا تغيّر شيئا تقريبا، لأن عنق الزجاجة ليس هناك أصلا. فالخادم مسؤول فقط عن إرسال أول بايت سريعا؛ وبقية العمل تجري في متصفح الزائر.
وثلاثة أمور أخرى ليست من واجب الخادم ويُلقى بها عليه باستمرار. أمان شفرة الموقع: فالخادم المحدَّث تماما ما زال قادرا على تشغيل إضافة قابلة للاختراق. وجودة قاعدة البيانات: فالاستعلام السيئ على عتاد أفضل ليس إلا أسرع قليلا في سوئه. والنسخ الاحتياطي: فما من خادم يأخذ نسخة عن نفسه من تلقاء نفسه، وهذه جملة تُفهَم عادة حين يكون الوقت قد فات.
فترتيب العمل الصحيح هو: اعرف أولا أين البطء، ثم أنفق المال. فإن كان عنق الزجاجة بناءَ الصفحة، فالتخزين المؤقت وقاعدة البيانات هما الجواب؛ وإن كان عنق الزجاجة شيئا يجري في المتصفح، فلن يساعدك أي خادم ويستمر العمل في مسار زيادة سرعة الموقع.
المسار السريع مع الذكاء الاصطناعي
الطريقة المعتادة لمعرفة «هل البطء من الخادم أم من الموقع» هي التخمين ثم تغيير الاستضافة. أما الطريقة السريعة فأن تأخذ قياسين بسيطين يحملان الجواب في ذاتهما، ولا تدع النموذج اللغوي يفعل شيئا سوى قراءتهما لك. ويستغرق كل ذلك دقيقتين، ونتيجته أنك تعرف أي طبقة أكلت الوقت، لا ما الذي قد يكون ملوما.
- خذ زمن الوصول إلى أول بايت للصفحة العادية خمس مرات واحتفظ بالأدنى: curl -s -o /dev/null -w "%{time_starttransfer}\n" https://example.com/. ونأخذ الأدنى لأن تذبذبا واحدا في الشبكة يفسد المتوسط.
- كرّر ذلك بمُعامل بلا معنى مثل ?x=1234 ليُتجاوَز مخزن الصفحة المؤقت ويُضطر التطبيق إلى بناء الصفحة فعلا. الآن لديك رقمان، والفارق بينهما هو بالضبط كلفة طبقة التطبيق.
- وخذ رؤوس الاثنين أيضا (curl -sI)، فهي تقول أي طبقة أجابت. ثم سلّم القطع الأربع جميعا مع الوصفة أدناه. ويكفي نموذج سريع رخيص؛ والاختيار الحالي في كل فئة محفوظ في مرجع الذكاء الاصطناعي عندنا.
- وقبل أي شراء، زِن الجواب بقسم «ما ليس من واجب الخادم». فإن كان الفارق بين الرقمين صغيرا فعنق الزجاجة ليس على الخادم أصلا، وتغيير الاستضافة إهدار للمال.
وصفة جاهزة للنسخ
دورك أخصائي بنية تحتية للويب. احكم من البيانات أدناه وحدها ولا تضف شيئا من الذاكرة.
العنوان: {عنوان الصفحة}
أ) زمن أول بايت، الصفحة العادية، الأدنى من خمس مرات: {رقم} ثانية
ب) زمن أول بايت، الصفحة نفسها بمُعامل بلا معنى، الأدنى من خمس مرات: {رقم} ثانية
رؤوس «أ»:
{الصق هنا}
رؤوس «ب»:
{الصق هنا}
اكتب أربعة أشياء:
١. كم يبلغ «ب» ناقص «أ»، ولأي طبقة يعود هذا الفارق.
٢. هل أُجيبت «أ» من مخزن صفحة مؤقت؟ اقتبس الرأس الذي يدل على ذلك. وإن لم يوجد رأس كهذا فاكتب «لا يمكن الجزم».
٣. بناء على هذين الرقمين، هل عنق الزجاجة في بناء الصفحة. جملة واحدة مع السبب.
٤. إن كان عنق الزجاجة في بناء الصفحة، فاكتب عملين مرتبين حسب الأثر يمكن تنفيذهما على الخادم نفسه ولا يحتاجان إلى تغيير الاستضافة.
قواعد: لا تكتب رأسا غير موجود في النص. ولا تخترع رقما. وإن لم تكفِ البيانات لأحد البنود فاكتب أي قياس آخر يلزم.
قبل أن تثق بالناتج: ثلاثة أشياء لا تُلصَق أبدا: ملف إعدادات الموقع وفيه كلمة مرور قاعدة البيانات، وإعدادات خادم الويب التي تفشي المسارات والعناوين الداخلية، والسجل الخام الذي يحوي عادة عناوين المستخدمين الحقيقيين وجلساتهم. ولا يلزم أي منها لهذا العمل؛ فرقمان ومجموعتا رؤوس تكفي، وضيق المدخلات هذا نصف قيمة الطريقة.
الذكاء الاصطناعي في هذا العمل
في هذا الموضوع جعل النموذج اللغوي شيئا رخيصا كان غاليا: القراءة. فقطعة إعدادات غير مألوفة أو سطر سجل لا تعرف معناه يُشرح في ثوان، وهذه الخطوة وحدها تمحو المسافة بين «لا أعرف ما يجري هنا» و«أعرف عمّ أبحث». لكن حين يصير العمل لمسا للخادم، لا تحل ذاكرة النموذج محل وثائق النسخة نفسها التي ثبّتها أنت.
أدوات تساعد فعلا
- Claude جيد لقراءة المخرجات الخام للأوامر وشرح إعداد سطرا سطرا، وهذان العملان يحملان أكبر قيمة في هذا الدرس. وإيران ليست في قائمة أنثروبيك للدول المدعومة، فلا طريق رسمي للتسجيل أو الدفع.
- Gemini Notebook هذه هي الحيلة الحقيقية في هذا الدرس: ارفع الوثائق الرسمية للنسخة نفسها التي ثبّتها واسأل من داخل تلك الوثيقة. فيأتي الجواب من نص الصانع، ولا يعود اسم الإعداد تخمينا. ويعمل على حساب غوغل، وإيران ليست ضمن المناطق المتاحة.
اين ينقلب ضدك
خطران، وكلاهما يقع في هذا الموضوع بعينه. الأول ما تلصقه. فملف إعدادات موقع ووردبريس يحمل كلمة مرور قاعدة بياناته، وإعدادات خادم الويب خريطة كاملة للمسارات الداخلية؛ وهذه تبدو غير ضارة للتشخيص وليست كذلك. وغوغل تقول صراحة في صفحتها عن بيانات جيميناي ألا تُدخل معلومات سرية، أي أن الصانع نفسه يعدّ هذا حدا حقيقيا. والثاني إعداد لا وجود له. فالنموذج يذكر بثقة تامة مسار أمر أو اسم خيار إعدادات، ويكون ذلك الخيار غير موجود في النسخة التي ثبّتها أو له معنى آخر؛ وأنثروبيك نفسها تسمّي هذا الاختراع الواثق هلوسة في وثائقها وتكتب عن تقليله. وعلى خادم حي تختلف كلفة هذا الخطأ عن كلفة جواب خاطئ في محادثة، لأن الموقع يسقط. وموقفنا بسيط: اسأل النموذج عن المفهوم، واسأل وثائق تلك النسخة بعينها عن الاسم الدقيق للإعداد، ولا تنفّذ على خادم حي أمرا لا تفهم عمله.
المصادر: Google: Gemini Apps privacy and data Anthropic: reduce hallucinations Anthropic: supported countries Google: where Gemini Apps are available
حدود هذه النصيحة
هذا الدرس يبني المفهوم ولا يجعل منك مدير خوادم. فتركيب الخادم وتحصينه، والجدار الناري، والتحديثات، والمراقبة، كل منها عمل مستقل وليست هنا. واختيار الاستضافة وشراؤها تُركا عمدا كذلك، وقد فُتحا في دليل اختيار الاستضافة. ولنذكر حدّ الأرقام صراحة: كل رقم هنا يأتي من إعداد هذا الجهاز الواحد وقياسه. فعدد العمال والسقف الزمني والنسخ تختلف على أي خادم آخر، ومقارنتها مباشرة بخادمك ليست صحيحة؛ فالذي ينتقل هو الطريقة لا الرقم.
من عملنا نحن
كل ما في هذا الدرس مأخوذ من إعداد الخادم الذي ناولك هذه الصفحة وقياسه، في ٧ سبتمبر ٢٠٢٦. والطبقات هي: nginx النسخة ١.٢٩.٤ خادمَ ويب، وPHP النسخة ٨.٥.٢ مفسّرا، وMariaDB النسخة ١٠.١١.١٠ قاعدةَ بيانات، وRedis ذاكرةً مؤقتة. ويتحدث خادم الويب والمفسّر عبر ملف مقبس على القرص نفسه لا عبر الشبكة، وإعداد قاعدة البيانات على localhost. وسقف التزامن في طبقة التطبيق عشرون عاملا، وسقف زمن الطلب الواحد ١٨٠ ثانية؛ وكلاهما مكتوب في الإعدادات وليس تخمينا. وأما قياس السرعة: فالصفحة الأولى لهذا الموقع تستغرق ٢٣ ميلي ثانية في أفضل الأحوال من ملف جاهز، والصفحة نفسها حين تُلزَم بالبناء تستغرق ١٣٩ ميلي ثانية في أفضل الأحوال حتى أول بايت، وكل منهما أدنى قيمة من خمس مرات ومأخوذ من الخادم نفسه مباشرة كي لا تتدخل شبكة توصيل المحتوى في النتيجة.
اسئلة متابعة حقيقية
كم زائرا متزامنا يتحمل خادمي؟
هذا الرقم لا يخرج من المعالج بل من قسمة بسيطة: عدد العمال مقسوما على الزمن الذي يستغرقه كل طلب. فبعشرين عاملا ومئة ميلي ثانية للطلب، نحو مئتي طلب في الثانية؛ وبالعشرين نفسها وثانيتين للطلب، عشرة. ولهذا فتقصير زمن كل طلب أنجع من شراء خادم أكبر.
لماذا لم يصر موقعي أسرع على الاستضافة الجديدة؟
لأن عنق الزجاجة لم يكن على الخادم على الأرجح. فالخادم لا يحدد إلا زمن أول بايت؛ وإن كان البطء من حجم الصور والنصوص البرمجية التي تُنفَّذ في المتصفح، فلن يغيّره أفضل خادم في العالم. والاختبار هو القياسان نفساهما في قسم المسار السريع: فإن كان الفارق بين الصفحة المخزَّنة وغير المخزَّنة صغيرا، فقد ذهب المال إلى المكان الخطأ.
ما الفرق بين الخادم والاستضافة؟
الخادم هو الجهاز، والاستضافة هي الخدمة التي تشتريها عليه. فحين تشتري استضافة فأنت تستأجر حصة من خادم مع صيانتها ودعمها، لا الجهاز نفسه. ولهذا فقولك «اشتريت استضافة لكن لا أملك وصولا إلى إعدادات الخادم» ليس تناقضا؛ بل هو بالضبط ما اشتريته.