تجربتي مع Plesk

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

تجربتي مع Plesk
تمت الصفقة ولم يعد هناك حاجة لعازف الكمان. نهاية. ليس حقيقيًا.

كان الموقع يعمل على جهاز VM ثنائي النواة 4 جيجا بايت على Linode ، على بعض Debian5 المطحلب مع وقت تشغيل يصل إلى 400 يوم ومع قائمة الحزم غير المحدثة هذه. جزء ويب على CMS مكتوبة ذاتيًا ، nginx ، php5.3 FPM ، mysql ضبطها Percona. لقد نجحت في الأساس.

بالتوازي مع الحديث معي ، كان المالك الجديد يبحث عن مبرمج لتحقيق التوقعات بالمشروع. وجد. قام المبرمج بتقييم حركة المرور والأحجام وقرر أنه جيد في التحسين وإدارة التكاليف. لقد هاجر الموقع بأكمله إلى استضافة مشتركة بقيمة 700 روبل يديرها تنظيم الدولة الإسلامية المعتاد. بعد بضعة أيام ، تلقيت مكالمة أخرى من المالك: "كل شيء يتباطأ ويبدو أننا قد تعطلنا". حاولت إصلاح الموقف من خلال اللوحة ، لكن بعد فترة من المحاولات غير المثمرة لتغيير إصدار PHP أو المعالج من fcgi إلى fpm ، استسلمت ودخلت في shell. هناك وجدت التصحيح المضمن ، الذي ظهر على الإنترنت بالكامل بكلمة مرور من العضلات ، 777 في بعض المجلدات ، والتي كانت في ذلك الوقت تتصدع من البرامج الضارة الغارقة والألعاب المماثلة. أدرك المالك وقرر أن التوفير في الاستضافة ، والمبرمج ، والمسؤول الذي سينظر بعين واحدة في كيفية حدوث الأمور بشكل خاطئ.

نحن ذاهبون إلى RuVDS. أقرب قليلاً من الخط البريطاني ، وإذا أردت فجأة تخزين البيانات الشخصية وكل ذلك ، فلن تضطر إلى الانتقال إلى أي مكان آخر. منذ أن تم التخطيط لتوسيع المشروع ، أخذنا VMK "للنمو": 4 مراكز ، وذاكرة 8 جيجابايت ، و 80 جيجابايت من القرص. ليس الأمر أنني لا أعرف كيفية استخدام تكوينات nginx بيدي ، لم يكن لدي الحماس للتعامل مع هذا المشروع بشكل وثيق (انظر أعلاه حول الدوام الجزئي). لذلك ، قمت بتثبيت Plesk (هنا سأحذف تفاصيل التثبيت ، لأنها بشكل عام ليست موجودة: لقد قمت بتشغيل المثبت ، وقمت بتعيين كلمة المرور للمسؤول ، وأدخلت المفتاح - هذا كل شيء) ، في ذلك الوقت كان 17.0. تعمل الإعدادات الأساسية بشكل مقبول خارج الصندوق ، وهناك fail2ban وأحدث إصدارات PHP ، nginx متوفرة. 

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

لذلك ، أضعها. لقد وفرت الكثير من الوقت ، وتبين أن إعادة تشغيل الموقع على خادم جديد كان فوريًا تقريبًا. كل ما تبقى هو تعديل تكوين العضلات ، وإعطائها نصف الذاكرة وزيادة عدد تجمعات المخزن المؤقت ، وإعطاء nginx نصف النوى (لا تلمس Splash التكوينات العامة) ، وانتقل إلى shell لإلقاء نظرة على إحصائيات mysqltuner لبضعة أيام. نعم ، لقد اشتريت ImunifyAV مدفوعًا من كتالوج الإضافات للتخلص من البرامج الضارة المغمورة. تم العثور على حوالي 11000 ملف مصاب. المقيت هو أن قطعًا غامضة من الشفرات تم سكبها في الستاتيكات ، وسيكون تنظيفها يدويًا أمرًا مملًا تمامًا. في البداية جربت كلاماف ، لكن ، كما اتضح ، لم يأخذ مثل هذه الأشياء ، لكن ImunifyAV استطاع ذلك. علاوة على ذلك ، تظل الملفات التي تم علاجها في حالة صالحة للعمل ، تتم إزالة قطعة واحدة فقط بها برامج ضارة.

الحساب بسيط: 50 دولارًا شهريًا لـ VMka ، و 10 دولارات لـ Plesk (أقل في الواقع ، لأنهم اشتروه لمدة عام بخصم لمدة شهرين) و 3 دولارات لمضاد فيروسات. أو الكثير من الحقائب المالية لوقتي ، والتي كنت سأقضيها على الخادم في البداية في تنظيف هذه الإسطبلات يدويًا. كان المالك راضيًا تمامًا عن هذا الترتيب.

تجربتي مع Plesk
في غضون ذلك ، وجدوا مبرمجًا جديدًا. اتفقنا معه على توزيع المسؤولية ، وإنشاء نطاق فرعي للإصدار التجريبي ، وبدأ العمل. لقد شاهد نسخة جديدة من الموقع على Laravel ، ونظرت إلى fail2ban٪).

تجربتي مع Plesk
من المثير للاهتمام أن تدفق الأشخاص الفضوليين لا يتوقف وهناك دائمًا حوالي مائة عنوان في قائمة العناوين المحظورة. التأثير مثير للاهتمام: على وجه الخصوص ، عادةً ، إذا دخلت في الصدفة ، أرى ما يقرب من 20000 إلى 30000 محاولة تسجيل دخول SSH غير ناجحة في التحية. مع تفعيل fail2ban ، تم استثمار حوالي 70. الجهد المستثمر: 0. لسوء الحظ ، لم يمر دون قطرة من القطران. WAF (modsecurity) كان "شبه ممكّن" افتراضيًا: في وضع الاكتشاف. أي أنه كتب نشاطًا مشبوهًا في السجل ، لكنه في الواقع لم يتخذ أي إجراء. وقراءة جميع السجلات بشكل عشوائي ، وفقًا للسجون المشمولة ، وتبلل كل ما يتحرك. لذلك حظرنا نصف المحررين: د. اضطررت إلى تعطيل هذا السجن ، وإدراج عناوين IP الضرورية في القائمة البيضاء لضمان الموثوقية. تم استثمار الجهد: كزة بالماوس مرتين وتعليم المحررين أن يقولوا عنوان IP الخاص بهم.

تجربتي مع Plesk
ما أحبه المبرمج على الفور هو القدرة على تحميل قواعد البيانات مباشرة إلى اللوحة والوصول السريع إلى phpMyAdmin

تجربتي مع Plesk
ما أعجبني - السجلات والنسخ الاحتياطي. يتم كتابة السجلات وتدويرها خارج الصندوق ؛ من السهل جدًا إعداد النسخ الاحتياطية. في أكثر الأوقات بطئًا ، يتم عمل نسخة احتياطية كاملة ، في مكان ما حوالي 10 جيجا ، ثم كل يوم تزايدي ، 200 ميغا بايت لكل منهما ، خلال الأسبوع. الاسترداد محبب ، لملف معين أو قاعدة بيانات. إذا كنت بحاجة إلى الاستعادة من سلسلة إضافية ، فلن تحتاج إلى الكفاح أولاً مع كامل واستعادة السلسلة بأكملها ، فإن Splash يقوم بكل شيء بنفسه. يمكنك تحميل نُسخ احتياطية في أي مكان: ftp و dropbox و s3 bucket و google drive والمزيد.

تجربتي مع Plesk
اليوم G: أكمل المبرمج أخيرًا المحرك الجديد ، وقمنا بتحميله على الإنتاج ، واستوردنا البيانات القديمة وجلسنا لاختيار لون سيارة مازيراتي المستقبلية. ما زلنا نختار.

بدأت المشاكل الأولى. كان من المتوقع أن يكون الموقع الجديد أثقل من الموقع القديم ، ولكن الشيء الحقيقي هو أنه ، من بين أمور أخرى ، تم استخدام Yandex.Zen لجذب حركة المرور ، والتي كانت تلحق بالزوار على دفعات. تم ثني الموقع عند 150 اتصالًا متزامنًا (لا أتحدث عن RPS ، لأنني لم أقيسه). بدأنا في الضغط على الأزرار وتدوير المقابض في منطقة إعدادات php_fpm:
 
تجربتي مع Plesk
المرجع ، يحمل بالفعل 500 اتصال. مع إضافة بطاقات الائتمان إلى المركبات الترويجية ، ازدادت موجات حركة المرور. المعلم التالي 1000 اتصال متزامن. هنا كان عليّ إعادة صياغة الكود وإلقاء نظرة على روح العضلة. لم يساعد الرش ، لكن هذا لم يكن متوقعًا بشكل خاص. قمنا بتشغيل سجل الاستعلامات البطيء ، وتعليق الفهارس في قاعدة البيانات ، وإزالة الاستعلامات غير الضرورية من الكود ، وتنظيف تكوين mysql مرة أخرى باتباع نصيحة mysqltuner.

تحدي جديد - 2000 اتصال. تم إطلاق إصدار Plesk 17.8 للتو ، حيث تمت إضافة التخزين المؤقت nginx من بين أشياء أخرى. تم التحديث (سهل بشكل مدهش). نحاول. يعمل! وبعد ذلك دخلوا في لينة ، توقف تغذية Yandex.zen عن العمل. الموقع يعمل ، الخلاصة لا تعمل. التغذية لا تعمل ، لا توجد حركة مرور. الجو يسخن. تحت ضغط الظروف ومن الافتقار إلى الخيال ، دخلت على الفور في nginx straceit ووجدت ما كنت أبحث عنه. اتضح أنه في مرحلة ما ، قام nginx الغبي بتخزين الخطأ 500 الضال كرد فعل على Yandex get feed.xml. تم الإصلاح عن طريق إضافة استثناءات إلى إعدادات ذاكرة التخزين المؤقت:

تجربتي مع Plesk
من الواضح أن المالك يحتاج إلى ESCHO ، فإن الأمواج تتزايد ببطء. حتى الآن نحن نتأقلم ، لكننا بدأنا تجربة memcached مسبقًا ، لأن Laravel يدعمها تقريبًا خارج الصندوق. بطريقة ما لم أرغب في تثبيت memcached بيدي من أجل "اللعب" ، لذلك قمنا بتثبيت صورة عامل إرساء. مباشرة من اللوحة.

تجربتي مع Plesk
حسنًا ، أنا أكذب ، كان علي أن أذهب إلى القشرة وأضع الوحدة من خلال pecl. الحق علي تعليمات. لا يوجد ما يقال عن الزيادة في الإنتاجية حتى الآن ، لم تكن هناك تدفقات كبيرة بما فيه الكفاية. تم ربط محرك الموقع بالمضيف المحلي: 11211 ، تظهر الإحصائيات ، والذاكرة آخذة في التهام. إذا كنت ترغب في ذلك ، فسنرى ما يجب فعله بعد ذلك. إما أن نترك الأمر على هذا النحو ، أو نضع الشيء "الحقيقي" في المحور. أو لنجرب redis بنفس الطريقة

ثم كان من الضروري إرفاق القائمة البريدية. لا توجد مرحلات ، فقط مصادقة SMTP. قمت بإعداد عنوان بريدي ، باستخدام تفاصيله عبر PHP ، نقوم بعمل قائمة بريدية.

تجربتي مع Plesk
منذ وقت ليس ببعيد ، تم إصدار Plesk Obsidian (18.0) ، وتم تحديثه وفقًا للتجربة السابقة دون خوف. كل شيء سار بسلاسة ، لا يوجد شيء يمكن الحديث عنه. من اللطيف - تحسنت الواجهة بشكل كبير من حيث الجودة وتحديثها وأصبحت أكثر ملاءمة في بعض الأماكن. شيء رائع مراقبة متقدمة على جرافانا.

تجربتي مع Plesk
حتى الآن لم أتعامل معه بالتفصيل ، ولكن يمكنك ، على سبيل المثال ، إعداد تنبيهات لأي معلمة في البريد. مالك لول.

نظرًا لأنني أتحدث عن الواجهة ، فهي سريعة الاستجابة وتعمل بشكل جيد على الهاتف. في المراحل المبكرة ، بينما كنا نحاول العثور على الإعدادات المثلى لـ PHP وأشياء أخرى ، فقد ساعدنا كثيرًا. وخاصة عندما يقوم المبرمج ، في نوبة من حماس العمل ، بعمل شيء ما في الساعة 23:XNUMX ، وأنا ، في نوبة من الحماس في العمل ، أشرب الفودكا في الحمام ، وأحتاج بشكل عاجل إلى تبديل شيء ما.

تجربتي مع Plesk
أه، بالمناسبة. تظهر الصورة ظهور PHP Composer. لم نلعب معها بعد ، ولكن ، على سبيل المثال ، بالنسبة إلى Laravel نفسه ، يمكن أن يوفر بضع عمليات تسجيل دخول إلى shell وبعض الوقت لتثبيت التبعيات. نفس النظام موجود لـ Node.JS و Ruby.

مع SSL ، كل شيء بسيط. إذا قرر المجال المكان الذي يجب أن يكون فيه ، يتم إجراء Let's Encrypt بنقرة واحدة ويتم تحديثه من تلقاء نفسه ، سواء على المجال نفسه أو على المجالات الفرعية ، وحتى خدمات البريد.

تجربتي مع Plesk
Plesk نفسه كبرنامج ممتع ومستقر حاليًا. يقوم بتحديث نفسه والمحور بهدوء ، ويستهلك القليل من الموارد ، ويعمل بسلاسة. لا أتذكر حتى أنه في مكان ما دس فيه شيء من شأنه أن يكون عيبًا واضحًا في المنتج. بالطبع ، كانت هناك مشاكل ، لكنها كانت إما من النقص في التكوين ، أو في مكان ما عند التقاطع ، لذلك لم يكن هناك ما يشكو منه. الانطباعات من العمل مع Plesk ممتعة بشكل عام. ما لا يحتويه ، ويجب على المرء أن يفهم ذلك ، هو أي (أي) تجمّع. لا LB ولا HA. يمكنك المحاولة ، ولكن سيكون هناك الكثير من الجهد المستثمر بحيث يكون من الأفضل القيام بشيء مختلف في البداية.

أعتقد أنه يمكننا التلخيص. بالنسبة للحالة التي لا يوجد فيها مشرف ، أو لا يكفي ذلك ، عندما يتجاوز سعر الاستضافة والموقع (المواقع) الذي يدور عليها ، دعنا نقول ، 100 دولار أمريكي ، عندما لا نتحدث عن موقع بيستي مشترك من 1500 موقع على الخادم ، عندما يكون لدى صانع القرار خيار لتوظيف مسؤول بدوام جزئي ، أو شراء برنامج وبدء تشغيل مسؤول لمدة نصف لقطة ، أو عدم بدء تشغيله على الإطلاق - فهذا أمر منطقي بالتأكيد. من وجهة نظر المسؤول البعيد - نفس الشيء. 10 دولارات شهريًا ، ويوفر الوقت ويمنح المرونة في العمل لفترة طويلة جدًا.оالمزيد من المبلغ. على سبيل المثال ، إذا طُلب مني بشدة القيام بمشروع مماثل تحت جناحي ، فسوف أصر على الانتقال إلى Plesk.

تجربتي مع Plesk

المصدر: www.habr.com

إضافة تعليق