2011-06-15 17 views
5

पैसेंजर स्टैंडअलोन (एनजिनक्स कोर द्वारा संचालित) का उपयोग करने का अर्थ यह है कि हमें अपाचे या निगेंक्स जैसे HTTP सर्वरों का सामना करने की आवश्यकता नहीं है?यात्री स्टैंडअलोन, HTTP सर्वर की कोई आवश्यकता नहीं है?

उत्तर

13

संक्षिप्त उत्तर "हां" है जो वास्तव में यह काम करता है। असल में यात्री स्टैंडअलोन आपको passenger start के माध्यम से अपना एप्लिकेशन चलाने की अनुमति देता है, और यह वास्तव में रेल अनुरोधों को पूरा करने के लिए दृश्यों के पीछे nginx का उपयोग करता है।

हालांकि, एकमात्र वेबसर्वर के रूप में यात्री स्टैंडअलोन चलाने के साथ एक बड़ी समस्या है। यदि आप एक से अधिक रूबी-आधारित वेबसाइट को चलाने के लिए चाहते हैं, तो आपको उन्हें अलग-अलग बंदरगाहों पर चलाने की ज़रूरत होगी, क्योंकि अलग-अलग एप्लिकेशन को प्रॉक्सी अनुरोधों के साथ यात्री स्टैंडअलोन के साथ अनुरोध करने का कोई तरीका नहीं है।

मेरे पर्यावरण में, मुझे रूबी के कई अलग-अलग संस्करणों (रेल के विभिन्न संस्करणों) का उपयोग करके कई साइटों को चलाने की आवश्यकता नहीं थी। उदाहरण के लिए मेरे पास रूबी एंटरप्राइज़ संस्करण के साथ रेल 2.3.x चल रही एक साइट है, और दूसरी साइट रेल 3.0.x चल रही रूबी 1.9.2 चल रही है।

  • प्रत्येक वेबसाइट यात्री स्टैंडअलोन, जो मैं एक स्थानीय यूनिक्स सॉकेट पर सुनने के लिए कॉन्फ़िगर किया है चलाता है: मैं इस समस्या को हल करने के लिए एक अलग Nginx प्रॉक्सी के साथ यात्री स्टैंडअलोन इस्तेमाल किया। मैं RVM मेरे लिए मेरी रूबी संस्करण लोड हो रहा है की देखभाल करने, इसलिए मेरे passenger start आदेश थोड़ा लंबा है का उपयोग करें, लेकिन यह इस तरह दिखता है:

  • अब मेरी एप्लिकेशन चल रहा है और /tmp/mysite.com.sock पर सुनकर, मेरे पास एक और Nginx उदाहरण है जो पोर्ट 80 पर चलता है जो प्रत्येक साइट पर अलग-अलग अनुरोध भेजने के लिए सरल प्रॉक्सी_पास नियमों का उपयोग करता है।

लंबे पद के लिए खेद है, और शायद यह थोड़ा बहुत अधिक जानकारी है ... लेकिन मैंने पाया कि इस कॉम्बो वास्तव में अच्छी तरह से काम करता है, और मैं अपने व्यक्तिगत शुरू करने के लिए कुछ अच्छा init.d शैली की स्क्रिप्ट लिखा है यात्री स्टैंडअलोन एप्स। Nginx स्मृति उपयोग इतना आश्चर्यजनक रूप से कम है कि इसके 3 उदाहरण चलाने के लिए वास्तव में कुछ भी लागत नहीं है (प्रत्येक साइट के लिए 1, और पोर्ट 80 पर 1)।

आशा है कि इससे मदद मिलती है!

+0

विस्तृत स्पष्टीकरण स्कॉट के लिए धन्यवाद। इसलिए, मूल रूप से अपने संबंधित सैंडबॉक्स में चल रहे कई यात्री स्टैंडअलोन आरवीएम जेमसेट वातावरण को प्रॉक्सी अनुरोधों के लिए एक और http सर्वर की आवश्यकता होगी। यदि यात्री का उसका केवल 1 उदाहरण है तो यह सीधे पोर्ट 80 से कनेक्ट हो सकता है और सभी http + cgi ट्रैफ़िक को संभाल सकता है। –

+0

@ प्रैटिक: बिल्कुल। –

+0

अपनी init.d स्क्रिप्ट साझा करना मन? –

0

जहां तक ​​मैं पढ़ सकता हूं (http://www.modrails.com/documentation/Users%20guide%20Standalone.html) "यात्री स्टैंडअलोन" स्वयं एक वेबसर्वर है।

के विपरीत के लिए Nginx के लिए अपाचे और Phusion यात्री Phusion यात्री, Phusion यात्री स्टैंडअलोन एक बाहरी वेब सर्वर की आवश्यकता नहीं है, यह अपने आप ही है और इसलिए बहुत आसान आरंभ करने के लिए है।

+0

हां, मुझे एक इंप्रेशन मिला कि उस पंक्ति को पढ़ने के बाद यह स्वयं पर्याप्त है, लेकिन यह कल्पना करना मुश्किल है कि यह सभी मामलों में काम कर सकता है। –

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