كيفية إعداد تطبيقات Node.js المستمرة على Ubuntu 16.04

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

المتطلبات الأساسية

  • أنشئ نسخة Vultr من أي حجم باستخدام Ubuntu 16.04 LTS x64.
  • إذا لم تكن المستخدم الأساسي ، فقم بتشغيل sudo -sكلمة المرور واكتبها. مطلوب الوصول إلى الجذر لتعديل ملف بدء التشغيل بحيث يبدأ مدير العملية في التمهيد.
  • تأكد من تثبيت Node.js على المثيل ، وأن إصدار Node.js هو 8.9.3 LTS أو أحدث ، وهو مطلوب لتشغيل مدير المثابرة بسلاسة. استخدم node -vللتحقق من الإصدار المثبت. إذا لم يكن Node.js على الإصدار الصحيح ، فستقوم الأوامر التالية بتثبيته.

تثبيت Node.js.

$ sudo apt-get update
$ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
$ sudo apt-get install -y nodejs

إنشاء قسم المبادلة

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

$ git clone https://github.com/teamtofu/server-tools.git tools
$ bash ./tools/swap.sh

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

تثبيت الغزل

Yarn هو مدير حزم سهل الاستخدام من Facebook لحزم Node.js. إنه أسرع من NPM وحتمية أيضًا ، وهو أمر مفيد بشكل خاص عند نشر خوادم متعددة.

$ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
$ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
$ sudo apt-get update && sudo apt-get install yarn

ومع ذلك ، يمكن استخدام NPM بدلاً من Yarn ، ولديه أوامر مماثلة لجميع تلك الموجودة في هذا البرنامج التعليمي.

قم بتثبيت تطبيق Node.js الخاص بك

إذا تم استضافة تطبيقك في مستودع git ، قم باستنساخه واستخدامه yarn install. يجب أن يحتوي تطبيقك على ملف إدخال خادم ، عادة server.jsأو index.js، والذي سيتم استخدامه في الخطوات التالية.

تثبيت Process Manager 2

إدارة العمليات 2 هي الحزمة التي ستعيد تشغيل التطبيق تلقائيًا. يتمتع Process Manager 2 بشعبية كبيرة ، ويستخدمه Microsoft و PayPal و Intuit ، لذلك فهو آمن وموثوق.

$ yarn global add pm2

أضف تطبيقك كعملية

سيتم تشغيل التطبيق (تشغيله في الخلفية) وإعادة تشغيله تلقائيًا باستخدام الأمر start.

$ pm2 start [path to your entry.js] -i max

إذا كنت تريد تشغيل الحد الأقصى لعدد العمليات تلقائيًا ، فمرر -i maxالوسيطة. إذا كان الاستخدام الوحيد لمثيل Vultr هذا هو خدمة التطبيق ، فمن المستحسن القيام بذلك. بالنسبة لمثيلات Vultr التي تحتوي على أكثر من وحدة معالجة مركزية (CPU) ، سيتم تشغيل عمليات متعددة ، وسيعمل Process Manager 2 كموازن التحميل لجميع هذه العمليات الفردية.

بدء تشغيل التطبيق تلقائيًا عند التمهيد

بعد بدء التطبيق ، احفظ تكوين التطبيق. بعد ذلك ، قم بتشغيل أمر بدء التشغيل لتشغيل Process Manager 2 تلقائيًا في الخلفية عند تشغيل Ubuntu. بالنسبة لـ Ubuntu 16.04 ، سيتم ربط Process Manager 2 بـ systemd.

$ pm2 save
$ pm2 startup

الآن إذا تعطل تطبيق Node.js الخاص بك بسبب خطأ ، فسيتم إعادة تشغيله ، وإذا تعطل Ubuntu لأي سبب ، فستتم إعادة تشغيل العملية تلقائيًا مع Ubuntu. يمكن إعادة تشغيل العمليات مع ويمكن إعادة تشغيل pm2 gracefulReload allProcess Manager 2 مع pm2 update. لإيقاف تشغيل Process Manager 2 ، قم بتشغيل pm2 unstartup.

اختبارات

حاول الكتابة rebootوالتحقق لمعرفة ما إذا كان يتم تقديم تطبيقك بعد تشغيل Ubuntu. إذا كان التطبيق للويب وعرض عبر المنفذ 80، curl http://localhost/فسيعرض HTML لصفحة البداية. في حالة أنه لا يعمل ، pm2 statusسيظهر الأمر العمليات الجارية ، ويمكن إعادة إصدار الأمر start.

نشر إصدارات جديدة من التطبيق

إذا تم تحديث التطبيق ، مثل سحب مستودع git ، فيجب إصدار أمر لتحديث عمليات التطبيق قيد التشغيل.

$ pm2 update

مثال للاستخدام

يعمل Parse Server ، وهو نظام أساسي شائع مفتوح المصدر كخدمة ، كخلفية للتطبيق. قد تتعطل الواجهة الخلفية بسبب أخطاء في التعليمات البرمجية أو حجم الطلبات ، ولكن لن يواجه التطبيق أي وقت تعطل لأن الخوادم الأخرى (و / أو العمليات) تستمر في العمل ، ويتم إعادة تشغيل عملية خادم التحليل بسرعة.

اترك تعليقاً

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

وظائف طبقات معمارية مرجعية للبيانات الضخمة

وظائف طبقات معمارية مرجعية للبيانات الضخمة

اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.

6 أشياء شديدة الجنون حول نينتندو سويتش

6 أشياء شديدة الجنون حول نينتندو سويتش

يعرف الكثير منكم أن Switch سيصدر في مارس 2017 وميزاته الجديدة. بالنسبة لأولئك الذين لا يعرفون ، قمنا بإعداد قائمة بالميزات التي تجعل "التبديل" "أداة لا غنى عنها".

وعود التكنولوجيا التي لم يتم الوفاء بها بعد

وعود التكنولوجيا التي لم يتم الوفاء بها بعد

هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.

كيف يمكن للذكاء الاصطناعي نقل أتمتة العمليات إلى المستوى التالي؟

كيف يمكن للذكاء الاصطناعي نقل أتمتة العمليات إلى المستوى التالي؟

اقرأ هذا لمعرفة مدى انتشار الذكاء الاصطناعي بين الشركات الصغيرة وكيف أنه يزيد من احتمالات نموها ومنح منافسيها القدرة على التفوق.

التفرد التكنولوجي: مستقبل بعيد للحضارة الإنسانية؟

التفرد التكنولوجي: مستقبل بعيد للحضارة الإنسانية؟

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

CAPTCHA: ما هي المدة التي يمكن أن تظل تقنية قابلة للتطبيق للتميز بين الإنسان والذكاء الاصطناعي؟

CAPTCHA: ما هي المدة التي يمكن أن تظل تقنية قابلة للتطبيق للتميز بين الإنسان والذكاء الاصطناعي؟

لقد أصبح حل CAPTCHA صعبًا جدًا على المستخدمين في السنوات القليلة الماضية. هل ستكون قادرة على أن تظل فعالة في اكتشاف البريد العشوائي والروبوتات في المستقبل القريب؟

التطبيب عن بعد والرعاية الصحية عن بعد: المستقبل هنا

التطبيب عن بعد والرعاية الصحية عن بعد: المستقبل هنا

ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!

هل تساءلت يومًا كيف يربح المتسللون الأموال؟

هل تساءلت يومًا كيف يربح المتسللون الأموال؟

ربما سمعت أن المتسللين يكسبون الكثير من المال ، لكن هل تساءلت يومًا كيف يجنون هذا النوع من المال؟ دعنا نناقش.

يتسبب التحديث الإضافي لنظام macOS Catalina 10.15.4 في حدوث مشكلات أكثر من حلها

يتسبب التحديث الإضافي لنظام macOS Catalina 10.15.4 في حدوث مشكلات أكثر من حلها

أصدرت Apple مؤخرًا macOS Catalina 10.15.4 تحديثًا تكميليًا لإصلاح المشكلات ولكن يبدو أن التحديث يتسبب في المزيد من المشكلات التي تؤدي إلى إنشاء أجهزة macOS. قراءة هذه المادة لمعرفة المزيد