मैं एक Node.js एप्लिकेशन लिखा है नियोजित करना, मैं इसे अपने उत्पादन मशीनों में से एक पर चल रहे करने के लिए देख रहा हूँ। यह एक बहुत ही आम अनुरोध की तरह लगता है फिर भी मुझे पर्याप्त समाधान नहीं मिल रहा है। क्या उत्पादन Node.js ऐप्स को तैनात करने के लिए समाधान स्थापित नहीं किए गए हैं?एक उत्पादन Node.js सर्वर
एप्लिकेशन सरल (< 100 एलओसी) है, लेकिन बहुत ही कुशल, विश्वसनीय होने की और पुन: प्रारंभ करने के बिना साल के लिए लगातार चला सकते हैं की जरूरत है। यह दर्जनों कनेक्शन/सेकंड के साथ, एक बड़ी साइट पर चलने जा रहा है। (एप्लिकेशन एक वेबसर्वर के रूप में इस्तेमाल नहीं कर रहा है, यह केवल एक JSON एपीआई है)
यहाँ दृष्टिकोण मैं माना जाता है कर रहे हैं लेकिन मैं अभी भी के बारे में यकीन नहीं है:।
एक रूपरेखा का उपयोग करना (जैसे एक्सप्रेस)
क्योंकि ऐप को उच्च प्रदर्शन की आवश्यकता है और यह इतना आसान है, ढांचे के रूप में ब्लोट जोड़ना कुछ ऐसा है जिसे मैं टालना चाहता हूं।
nohup
मुख्य समस्या यहाँ के साथ सर्वर शुरू अपवाद हैंडलिंग के साथ है, हम (जाहिर है) पूरा सर्वर एक अपवाद की वजह से दुर्घटना नहीं करना चाहती। जो मैं समझता हूं, पूरे एप को try {} catch {}
लूप में लपेटने से मदद नहीं मिलेगी क्योंकि जावास्क्रिप्ट दुभाषिया को अपवाद के बाद एक अप्रत्याशित स्थिति में छोड़ दिया गया है। क्या वो सही है?
हमेशा के लिए
मैं हमारा एक FreeBSD मशीन में हमेशा के लिए स्थापित किया है और यह बहुत ही गाड़ी था की तरह कुछ का उपयोग करना। यह अंतहीन प्रक्रियाओं को खत्म कर देता है जिसे हमेशा से नहीं मारा जा सकता है। मुझे अपनी मशीन वापस पाने के लिए kill -9
चलाया गया था और मुझे हमेशा के लिए एक उत्पादन ऐप चलाने के बारे में बहुत विश्वास नहीं है। ऐसा लगता है कि अपस्टार्ट (समान उपकरण, लेकिन अधिक सामान्य) फ्रीबीएसडी पर नहीं चलेंगे।
की मेजबानी समाधान (जैसे। Heroku, रैकस्पेस, अमेज़न EC2, आदि)
यह शायद सबसे सरल समाधान है, लेकिन हम पहले से ही हमारे वेबसर्वर के बाकी के लिए एक गंभीर हार्डवेयर की है। वित्तीय विचारों के लिए, यह समझ में नहीं आता है।
निश्चित रूप से इस के लिए कुछ स्थापित समाधान होना चाहिए? क्या मैं कुछ भूल रहा हूँ?
नवोदय को संभालने के लिए तैयार है FreeBSD पर sysvinit के लिए एक स्थानापन्न है। – chovy
इस एसओ को पढ़ने वाले 2014 के भीड़ के लिए। 'हमेशा के लिए' छूट नहीं दी जानी चाहिए क्योंकि यह इस मामले में दो साल से अधिक विफल रहा और कई पहले काम करता था। पिछले कुछ महीनों से मुझे सफलता मिली है। –
2015 के लिए इस एसओ को पढ़ने के लिए भीड़। हमेशा के लिए [पीएम 2] (http://www.nikola-breznjak.com/blog/nodejs/using-pm2-to-run-your-node-js-apps-like-a-pro/) का उपयोग करें। – Nikola