إدارة الحسابات، العملاء والاشتراكات (Customers & Subscriptions)
للتحول من مجرد "مطور يملك سيرفر" إلى "شركة استضافة صغيرة"، يجب أن تفهم بدقة الهرم الإداري في Plesk. الخلط بين هذه المفاهيم سيؤدي إلى كوارث أمنية وتضارب في الموارد.
التشريح الهرمي للصلاحيات (The Hierarchy)
- Administrator (مدير الخادم): أنت. تملك السيرفر بالكامل، ترى كل المواقع، وتتحكم في مكونات النظام الأساسية.
- Reseller (الموزع): كيان يشتري منك حصة كبيرة (مثلاً 50GB)، ويقوم ببيعها وتقسيمها لعملاء أصغر. لا يرى إلا عملاءه.
- Customer (العميل): صاحب الموقع أو الشركة. يمتلك اسم مستخدم وكلمة مرور، لكن لا يمكنه تغيير قيود المساحة أو المعالج التي فرضتها عليه.
- Subscription (الاشتراك): هو "المساحة المعزولة" التي تحتوي على الموقع. العميل الواحد يمكن أن يمتلك أكثر من اشتراك (موقعين منفصلين تماماً بحسابين مختلفين لإدارة الملفات).
بناء خطط الخدمة (Service Plans) بشكل علمي
خطط الخدمة ليست مجرد أرقام اعتباطية للمساحة (Disk Space) ونقل البيانات (Traffic). هناك تفاصيل دقيقة تحمي سيرفرك من الانهيار:
- Disk Space (مساحة التخزين): دائماً اختر حدّاً صارماً (Hard Limit) مثلاً 5000MB. إذا اخترت Unlimited فعميل واحد يمكن أن يرفع ملفات فيديو حتى يملأ السيرفر ويوقفه بالكامل!
- Overselling (البيع الزائد): ميزة خطيرة ومفيدة. تعني أن تبيع للعملاء مساحات (نظرياً) تفوق مساحة سيرفرك الفعلي! كيف؟ إذا كان لديك سيرفر 100GB، وبعت 10 خطط بحجم 20GB (المجموع 200GB)، سيسمح لك Plesk بذلك بفضل الـ Overselling، لأن العملاء فعلياً نادراً ما يستخدمون كامل مساحتهم المخصصة. راقب المساحة الفعلية بدقة عبر `Tools & Settings` > `System Statistics`.
- PHP Settings (إعدادات الـ PHP): في خطة الاستضافة، تأكد من قفل إعدادات خطيرة مثل
memory_limitبحيث لا تتجاوز 256MB للعميل العادي، وmax_execution_timeبـ 60 ثانية، لمنع أي سكربت خبيث أو معطوب من استهلاك معالج السيرفر (CPU Hogging).
العزل الأمني للاشتراكات (Chroot & CageFS)
ماذا لو تم اختراق موقع عميل (Customer A) ببرمجية Web Shell؟ كيف نمنع هذا الهاكر من قراءة ملفات موقع (Customer B) المجاور له في نفس السيرفر؟
في Plesk، يتم عزل كل اشتراك تلقائياً باستخدام Linux System Users مختلفة، وإعطاء الصلاحيات بدقة بحيث لا يستطيع المستخدم user_a الدخول למجلد /var/www/vhosts/domain_b.com.
ولكن للمستوى الأمني الاحترافي المطلق (كالبنوك والاستضافات الكبرى)، نستخدم إضافة CloudLinux أو تفعيل بيئة Chroot لكل اشتراك عبر إعدادات الـ Hosting Plan > Permissions > SSH Access to server environment (اختر Chrooted environment فقط ولا تختر /bin/bash أبداً للعملاء المجهولين).
استراتيجيات البيع وإدارة الموارد العميقة (Deep Resource Allocation)
بصفتك مزود خدمة (Host)، خطأ واحد في تحديد الموارد قد يكلفك بطء جميع المواقع على السيرفر بسبب موقع واحد سيئ (Noisy Neighbor). كيف تحمي نفسك وعملاءك؟
تفعيل الـ Cgroups لعزل الـ CPU والـ RAM
بالوضع الافتراضي، موقع العميل أ يمكنه استهلاك 100% من معالج السيرفر إذا كان لديه سكربت ثقيل، مما يؤدي لتوقف موقع العميل ب. لمنع ذلك، يقدم Plesk ميزة Resource Controller (Cgroups). يجب عليك تفعيلها من (Tools & Settings). بعد تفعيلها، ستظهر لك خيارات جديدة في الـ Service Plans تسمح لك بتحديد التالي بدقة:
- CPU Limit: لا تسمح للموقع باستخدام أكثر من 20% من المعالج (CPU Limit = 20%).
- RAM Limit: لا تسمح للموقع باستهلاك أكثر من 512MB من الذاكرة الحقيقية.
- Disk I/O Limit: الحد الأقصى لسرعة قراءة وكتابة الملفات (مثلاً 10MB/s) لكي لا يستهلك قرص التخزين.
الفرق بين الـ Suspend والـ Disable للاشتراكات
عندما لا يدفع العميل فاتورته، أو يقوم برفع ملفات مقرصنة، لديك خياران لإيقافه:
- Suspend (إيقاف مؤقت): الموقع يتوقف عن العمل ويُعرض للزوار صفحة "503 Service Unavailable" أو صفحة مخصصة من قبلك، لكن يظل بإمكان العميل الدخول لوحة التحكم وسحب ملفاته. قاعدة البيانات تتوقف عن استقبال اتصالات.
- Disable (تعطيل كامل): يُطرد العميل من لوحة التحكم، وتتوقف خدمات الموقع والبريد الإلكتروني بالكامل.
استخدام الأمر البرمجي للإيقاف الجماعي:
# إيقاف اشتراك محدد
plesk bin subscription -s example.com
# إعادة تفعيله
plesk bin subscription -u example.com
[توسعة المحترفين] فن بيع الاستضافة وإدارة الموارد (The Art of Hosting Business)
إنشاء حساب للعميل هو خطوة تقنية، ولكن إدارة سلوك هذا العميل هو فن وعلم. سنناقش كيف تحمي نفسك كمدير سيرفر من العملاء المزعجين أو المستغلين.
فخ الـ Inodes وكيفية تجنبه
بعض العملاء قد يشتري خطة بـ 5GB مساحة، ويقوم ببرمجة سكربت ينشئ ملايين الملفات النصية الفارغة (كل ملف حجمه 0 بايت). مساحة هذه الملفات نظرياً قريبة من الصفر، ولكنها ستستنفذ الـ Inodes (مؤشرات الملفات في نظام لينكس). إذا نفدت الـ Inodes، السيرفر بالكامل سيتوقف عن العمل حتى وإن كان هناك 500GB مساحة فارغة! لا يتيح Plesk افتراضياً تقييد الـ Inodes من الواجهة بوضوح. يجب عليك فرض هذا القيد عبر Linux Quotas وتحديده من سطر الأوامر:
# تحديد سقف أقصى 100 ألف ملف للاشتراك example.com
setquota -u example_user 0 0 100000 110000 -a /dev/vda1
هذه الخطوة الأمنية تفصل بين الهواة وشركات الاستضافة الاحترافية الحقيقية.
أتمتة البيع باستخدام WHMCS و API
هل ستقوم بإنشاء حساب لكل عميل يدوياً عندما يشتري منك خطة؟ بالطبع لا! Plesk يمتلك REST API و XML RPC API متطورة جداً. البرنامج الأشهر عالمياً لإدارة الاستضافات (WHMCS) يتكامل مع Plesk بشكل سحري. تقوم بإنشاء (Service Plan) في Plesk، ثم تقوم بإنشاء (Product) في WHMCS يحمل نفس اسم الـ Plan. عندما يقوم العميل بالدفع عبر PayPal أو البطاقة الائتمانية، سيقوم WHMCS بإرسال طلب (API Call) لـ Plesk الذي سيقوم بإنشاء الحساب، تجهيز المساحة، وإرسال بيانات الدخول للعميل، كل ذلك وأنت نائم!
العزل الكارثي للـ WordPress Toolkit
إضافة (WordPress Toolkit) في Plesk هي تحفة فنية. تتيح لك تحديث جميع إضافات الووردبريس لجميع العملاء بضغطة زر. لكن ماذا لو أدى التحديث لتعطل بعض المواقع؟ المحترفون يستخدمون ميزة (Smart Update) المدفوعة أو يقومون بإنشاء (Clone) للموقع بضغطة زر، ثم يختبرون التحديثات على النسخة المستنسخة، وإذا نجحت، يقومون بعمل (Sync) للبيانات. قم دائماً بتعطيل تحديث الـ (Core) الآلي لنسخ الووردبريس للعملاء في الـ Service Plan واترك لهم حرية التحديث، لتجنب تحمل مسؤولية تعطل مواقعهم جراء تحديثات غير متوافقة مع قوالبهم المخصصة.
💬 التعليقات
0 تعليقات