2012-08-25 16 views
8

मैं अपने वीपीएस सर्वर पर कई (> 2) छोटे रैक-आधारित ऐप्स चलाने के लिए चाहता हूं, जिसमें पहले से ही एक बड़ा रेल ऐप चल रहा है।एक सर्वर पर एकाधिक छोटे रूबी (रैक) ऐप्स कैसे चलाएं?

रेल ऐप पारंपरिक जोड़ी "यूनिकॉर्न + nginx" का उपयोग करता है और इसके लिए मेरे वीपीएस मशीन पर अधिकांश रैम संसाधनों की आवश्यकता होती है।

मैंने प्रत्येक ऐप के लिए समान यूनिकॉर्न कॉन्फ़िगरेशन जोड़ने का प्रयास किया है और इससे मुझे राम संसाधनों की अपर्याप्तता हुई है।

तो मेरा सवाल यह है: क्या एक छोटा मुश्किल स्मृति-बचत सर्वर स्थापित करना संभव है जो सभी सिनात्रा ऐप्स को एक बार में चलाने की अनुमति देगा?

अद्यतन: यदि यह महत्वपूर्ण है, तो मुझे प्रदर्शन के बारे में ज्यादा परवाह नहीं है। उन ऐप्स का कोई गंभीर काम नहीं करना है।

UPDATE2: Nginx के साथ साझा सॉकेट पर आधारित एक दृष्टिकोण को बंदरगाहों के साथ पसंद किया जाता है।

धन्यवाद!

+0

एक ही यूनिकॉर्न्स पर ऐप को मुख्य ऐप के रूप में क्यों नहीं चलाया जाता है? बस रैकअप फ़ाइल में मार्गों को हैक करें। – Catnapper

+0

हां, मैंने इसके बारे में भी सोचा। साथ ही एक midwares श्रृंखला की स्थापना के बारे में। समस्या - इसके परिणामस्वरूप तार्किक असंगतता होगी - मेरे सभी ऐप्स किसी भी तरह से एक-दूसरे से संबंधित नहीं हैं। –

+0

'एक सर्वर पर एकाधिक छोटे रैक ऐप्स' रखने के लिए एक दृष्टिकोण खोजने के लिए यहां दिलचस्प क्या है। मैं जानना चाहता हूं, अगर यह सामान्य रूप से संभव है। –

उत्तर

5

मैंने इस प्रश्न का अपना अन्वेषण किया और मुझे लगता है कि मुझे एक समाधान मिला है जो मुझे एक ही वेब सर्वर को मेरे सभी छोटे ऐप्स को एक साथ चलाने की अनुमति देगा।

यह RackStack नहीं अभी तक एक-मणि रेमी टेलर (@remi Github पर) https://github.com/remi/rack-stack द्वारा बनाई गई पर आधारित है।

रैकस्टैक रैक :: बिल्डर द्वारा प्रेरित है, जो इस तरह के कार्य को पूरा करने के लिए अच्छा लगता है - रैकस्टैक एक ही दिशा में आगे बढ़ता है, जिस तरह से मुझे "अच्छा" कार्यक्षमता मिलती है, जिस तरह से मुझे बहुत अच्छा और आसान लगता है।

यहां रैकस्टैक का एक प्रदर्शन है जिसमें दो नमूना ऐप्स (सिनात्रा और रैक) शामिल हैं: https://github.com/stanislaw/skeletons/tree/master/rack_stack। वास्तविक सर्वर पर स्टैक ऐप व्यवहार की नकल करने के लिए मैंने अपनी/etc/hosts फ़ाइल को स्थानीयहोस्ट 2 होस्ट को 127.0.0.1 पर इंगित करने के लिए संशोधित किया।

मैं थिन सर्वर को फायर करता हूं और फिर लोकलहोस्ट या लोकलहोस्ट 2 पर अनुरोध चलाता हूं: 'लोकलहोस्ट' के अनुरोध फर्स्ट ऐप द्वारा 'लोकलहोस्ट 2' को सेकेंड ऐप द्वारा परोसा जाता है।

अब मैं किसी भी समस्या का पता नहीं लगा सकता, जब मैं एक वास्तविक सर्वर पर अपने ऐप्स का परीक्षण करूंगा, लेकिन अब यह दृष्टिकोण बिल्कुल वैसा ही प्रतीत होता है जो मैं देख रहा था: मुझे कल्पना है कि एक वास्तविक सर्वर Nginx पर थिन सर्वर द्वारा सुनाई गई सॉकेट में मेरे रैक ऐप्स से जुड़े सभी होस्टों को अनुरोध पास करेंगे। इसलिए, रैकस्टैक केवल उन अनुरोधों को पूरा करेगा जो मेरे स्टैक में मौजूद ऐप्स के लिए संबोधित हैं।

कोई भी सुझाव, इस योजना या विकल्पों के सुधारों की अभी भी सराहना की जा रही है!

संबंधित मुद्दे