2011-08-29 13 views
12

अपाचे और नोड.जेएस में कुछ सामान्य है। जितना अधिक मैं नोड.जेएस का उपयोग करता हूं, उतना ही मुझे नोड.जेएस पसंद है; इसी तरह, मैं अपाचे का उपयोग करता हूं, जितना अधिक मुझे नोड.जे.एस. पसंद हैएक आवेदन कंटेनर के रूप में Node.js

अपाचे के बारे में एक अच्छी बात हालांकि, यह एक ही बंदरगाह के माध्यम से बहुत सी चीजें कर सकती है। PHP, पायथन, पर्ल, विभिन्न ऐप्स, विभिन्न पथ, पूरे मैग्ला। Node.js ऐसा नहीं करता है, और ऐसा नहीं माना जाता है लेकिन मैं कुछ ऐसा करना चाहता हूं।

मैं इसे यूआरएल-उपसर्ग (या आदर्श रूप से regexps) की एक सूची देना चाहता हूं, और यदि यह किसी विशेष उपसर्ग से मेल खाता अनुरोध प्राप्त करता है, तो यह एक निर्दिष्ट स्क्रिप्ट चलाने वाले एक अधीनस्थ उदाहरण के अनुरोध को पास करता है (और यह ऐसा उदाहरण शुरू करेगा यदि यह पहले से नहीं है, और ऐसा करने पर इसे बंद करें समझदार लगता है)। असल में, मुझे nodejs-proxy और cluster सहयोग करना चाहिए। इसके साथ, मैं पोर्ट 80 के माध्यम से एक ही मशीन पर कई ऐप्स चला सकता था।

यह बहुत आसान और बहुत उपयोगी लगता है और जब यह मेरे साथ हुआ तो मैं इसे खुद लिखने वाला था, "यह बहुत आसान लगता है और बहुत उपयोगी - शायद किसी ने इसे पहले ही लिखा है! " कोई सुझाव?

+6

+1 क्लासिक। "जितना अधिक मैं अपाचे का उपयोग करता हूं, उतना ही मुझे node.js पसंद है" – Raynos

+0

Mongrel2 का उपयोग आपके जैसे अनुरोधों को रूट करने के लिए किया जा सकता है (यदि मैं सही ढंग से समझता हूं) और नोड के लिए बाइंडिंग हैं। हालांकि यह नोड सॉफ्टवेयर नहीं है। – Austin

+0

@ ऑस्टिन - ऐसा लगता है कि यह काम करेगा, लेकिन मुझे एक नोड मॉड्यूल (एक "नोड्यूल"?) चाहिए। यह मेरा विश्वास है कि जावास्क्रिप्ट से पूरी तरह जटिल, अत्यधिक कुशल प्रणाली बनाना संभव है और मैं इस विश्वास का परीक्षण करना चाहता हूं। – Malvolio

उत्तर

7

नोड.जेएस में विभिन्न अनुप्रयोगों के अनुरोधों को रूट करने की कोई अंतर्निहित क्षमता नहीं है, लेकिन इस तरह के ढांचे विकास में हैं।

नोडजित्सु का Haibu दिमाग में आता है - यह प्रत्येक एप्लिकेशन के लिए बाल प्रक्रियाओं का प्रबंधन करता है और अनुरोधों को रूट करने के लिए node-http-proxy का उपयोग करता है।

+0

यह सत्यापित उत्तर अपडेट करने की आवश्यकता है। –

+0

@ मिस.कोड मुफ्त महसूस करें! – s4y

1

आप http://expressjs.com पर एक नज़र डाल सकते हैं जिसे मैं 'नोड के लिए साइनरा' के रूप में वर्णित करता हूं। यह पूरे यूआरएल/पैटर्न आधारित रूटिंग चीज देता है। आप इसे एक प्रकार का रीस्टफुल स्टाइल संसाधन दृष्टिकोण बनाने के लिए https://github.com/visionmedia/express-resource के साथ जोड़ सकते हैं।

+0

क्या आप निश्चित हैं? मैंने दस्तावेज़ों को देखा और ऐसा लगता है कि रूटिंग आंतरिक कार्यों के लिए है, अन्य नोड्स के लिए नहीं, जो बहुत अलग है। – Malvolio

+0

मुझे लगता है कि यह मुझे "एक अधीनस्थ उदाहरण के लिए अनुरोध को बंद कर देता है" जैसा कि "एक धागे के अनुरोध को रूट करना जिसमें आप इसके साथ कुछ भी कर सकते हैं" के बजाय "अनुरोध के साथ निपटने के लिए एक नई नोड प्रक्रिया शुरू करने के बजाय" "। यही वह जगह है जहां मैं भगवान + nginx + स्क्रैच से कुछ लिखने के बजाय लोड संतुलन के लिए एक अनुरोध कतार देखेंगे। YMMV। प्रासंगिक लिंक: http://blog.acmarques.com/deploying_node_with_nginx_and_god –

0

मेरे लिए ऐसा लगता है कि आप एक ईवेंट-आधारित HTTP प्रॉक्सी (अपाचे को प्रतिस्थापित करने के लिए) की तलाश में हैं - उस संबंध में, nginx पहाड़ी का वर्तमान राजा प्रतीत होता है।

+0

क्या आप निश्चित हैं? ऐसा लगता है कि यह बाल प्रक्रियाओं को उन सेवाओं की सेवा के लिए बनाए रखेगा जो प्रॉक्सी के अनुरोध करते हैं। – Malvolio

+0

@ माल्वोलियो कई लोग node.js उदाहरणों को अलग करने के अनुरोधों को वितरित करने के लिए * रिवर्स प्रॉक्सी * के रूप में nginx का उपयोग करते हैं। – s4y

+0

@ सिडनीशस - धन्यवाद, लेकिन मेरा सवाल यह है कि, यह * बनाए रखेगा * (यानी, शुरू करें और यदि सलाह दी जाती है, तो बंद करें) उन node.js उदाहरण। यदि ऐसा नहीं होगा, तो मुझे एक node.js प्रोग्राम बनाना होगा जो होगा, और वह प्रोग्राम प्रॉक्सी-आईएनजी भी कर सकता है; अगर यह * होगा * [खुश नृत्य करता है]। – Malvolio

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