انتقل إلى المحتوى

الدرس 3 من 3

التوسع إلى أكثر من خادم

دقيقة واحدة

عندما لا يكفي خادم واحد، وسّع الخادم نفسه أولًا (معالج وذاكرة أكبر)، فهذا بسيط وكافٍ غالبًا. وعندما لا يكفي، وزّع العمل على عدة خوادم.

الخطوة 1: افصل قاعدة البيانات

انقل قاعدة البيانات إلى خادم مستقل، فيتوقف التنافس على الذاكرة بين خادم الويب وقاعدة البيانات، ويمكن تحديد موارد كل منهما حسب عمله.

الخطوة 2: اجعل خوادم الويب بلا حالة

قبل إضافة خادم ويب ثانٍ، أزل كل ما يُخزَّن على قرصه المحلي:

  • الجلسات ← Redis أو قاعدة البيانات
  • الملفات المرفوعة ← تخزين الكائنات أو مساحة مشتركة
  • المهام المجدولة (Cron) ← تعمل على خادم واحد فقط

الخطوة 3: أضف موزّع أحمال

يوزّع موزّع الأحمال الطلبات على خوادم الويب، ويفحص حالتها باستمرار، فيستبعد أي خادم متعطل تلقائيًا.

upstream app {
    server 10.0.0.11;
    server 10.0.0.12;
}

الخطوة 4: نسخ القراءة

إذا أصبحت قاعدة البيانات هي نقطة الاختناق، أضف نسخًا للقراءة للتقارير والبحث، وأبقِ عمليات الكتابة على الخادم الرئيسي.

كل خطوة تضيف أجزاء متحركة، فأضف المراقبة وخطة استعادة مُجرَّبة قبل إضافة الخوادم، لأن كثرة الخوادم تعني طرقًا أكثر للتعطل.