2012-11-08 12 views
5

हमारी वेबसाइट ने रीयल-टाइम अपडेट की आवश्यकता विकसित की है, और हम विभिन्न धूमकेतु/लंबे मतदान समाधानों पर विचार कर रहे हैं। शोध करने के बाद, हम 4 टॉरनाडो उदाहरणों (अमेज़ॅन ईसी 2 पर होस्ट किए गए) के लिए एक रिवर्स प्रॉक्सी के रूप में nginx पर बस गए हैं। वर्तमान में हम पारंपरिक लैंप स्टैक का उपयोग कर रहे हैं और PHP में पर्याप्त मात्रा में कोड लिखा है। हम इस समाधान को बेहतर समर्थन देने के लिए हमारे PHP कोड को पायथन में परिवर्तित करने के लिए तैयार हैं। nginx के लिए एक: यह दो अलग-अलग सर्वर को चलाने के लिए सिफारिश कीअपाचे/PHP से Nginx/Tornado/Python

  1. एक क्वाड-कोर प्रोसेसर मानते हुए, nginx 4 बवंडर उदाहरणों के रूप में एक ही सर्वर पर चल रहा हो के लिए यह ठीक है, या है: यहाँ मेरी सवाल कर रहे हैं और 4 टॉरनाडो प्रक्रियाओं के लिए एक?

  2. क्या Nginx के सामने हैप्रोक्सी का उपयोग करने का कोई फायदा है? क्या Nginx लोड-संतुलन को अपने आप से बहुत अच्छी तरह से संभाल नहीं करता है?

  3. मेरे शोध से, Nginx में एक महान यूआरएल रीडायरेक्ट मॉड्यूल नहीं दिखता है। क्या रीडायरेक्ट के लिए रेडिस का उपयोग करना पसंद है? यदि हां, तो क्या Redis Nginx के सामने या पीछे होनी चाहिए?

  4. हमारे आवेदन कोड का एक बड़ा हिस्सा रीयल-टाइम अपडेट में शामिल नहीं होगा। इस कोड में कई डेटाबेस क्वेरीज हैं और फाइल सिस्टम पढ़ता है, इसलिए यह स्पष्ट रूप से गैर-अवरुद्ध ऐप सर्वर के लिए उपयुक्त नहीं है। मेरे शोध से, मैंने पढ़ा है कि ब्लॉकिंग समस्या को कई टॉरनाडो उदाहरणों से कम किया जाता है, जबकि अन्य कॉल अवरुद्ध करने के लिए एक अलग ऐप सर्वर (उदा। गुनीकोर्न/डीजेगो/फ्लास्क) का उपयोग करने का सुझाव देते हैं। गैर-अवरुद्ध सर्वर का उपयोग करते समय अवरुद्ध कॉल को संभालने का सबसे अच्छा तरीका क्या है?

  5. PHP से पायथन तक हमारे कोड को कनवर्ट करना एक लंबी प्रक्रिया होगी। क्या यह एक साथ अपाचे/PHP और टोरनाडो को निगेंक्स के पीछे चलाने के लिए स्वीकार्य है, या क्या हमें सिर्फ भाषा पर चिपकना चाहिए (या तो बंदूकधारी/डीजेंगो/फ्लास्क या टर्ननाडो के साथ टर्ननाडो)?

उत्तर

6

मैं बिंदु से बिंदु जायेंगे:

  1. हां। एक सर्वर पर टर्ननाडो और nginx चलाने के लिए ठीक है। आप nginx का उपयोग टर्ननाडो के लिए रिवर्स प्रॉक्सी के रूप में भी कर सकते हैं।

  2. हैप्रोक्सी आपको लाभ देगा, अगर आपके पास एक से अधिक सर्वर उदाहरण हैं। इसके अलावा यह आपको वेबसाइकिलों को सीधे टॉरनेडो तक प्रॉक्सी करने की अनुमति देगा।

  3. दरअसल, nginx को बिना किसी समस्या के रीडायरेक्ट के लिए उपयोग किया जा सकता है। मैंने रीडायरेक्ट के लिए रेडिस का उपयोग करने के बारे में नहीं सुना है - यह कुंजी/मूल्य भंडारण है ... क्या आपका मतलब कुछ और हो सकता है?

  4. फिर से, आप django में अवरुद्ध भाग लिख सकते हैं और टर्ननाडो में गैर-अवरुद्ध भाग लिख सकते हैं। इसके अलावा टर्ननाडो में डीबी प्रश्नों के लिए कुछ गैर-अवरुद्ध libs हैं। सुनिश्चित नहीं है कि आपको यहां django की शक्तियों की आवश्यकता है।

  5. हां, nginx के पीछे apache चलाने के लिए ठीक है। स्थिर फाइलों की सेवा के लिए कई परियोजनाएं अपाचे के सामने nginx का उपयोग करती हैं।

असल में सवाल बहुत बुनियादी है - उत्तर भी। यदि आप चाहें तो मैं किसी भी बिंदु पर अधिक विस्तृत हो सकता हूं।

+0

त्वरित प्रतिक्रिया के लिए धन्यवाद! – xxjbmxx

+1

1.) हम वास्तव में एक रिवर्स प्रॉक्सी के रूप में nginx का उपयोग करने की योजना बना रहे हैं। मैं सिर्फ उत्सुक था अगर nginx प्रक्रिया के लिए एक ही सर्वर पर चलने पर टर्नोडो उदाहरणों में से एक को सीमित करने के लिए पर्याप्त संसाधनों का उपभोग करना संभव था। 4।) ब्लॉकिंग कॉल के लिए आप किस पायथन ढांचे की सिफारिश करेंगे (यदि डीजेंगो अनावश्यक है)? – xxjbmxx

+1

यह बिल्कुल ठीक है - आपको एक सर्वर पर nginx + tornado के साथ कोई परेशानी नहीं होगी। अवरुद्ध कॉल के साथ सरल कार्यों के लिए - फ्लास्क पर एक नज़र डालें। यदि आपको अच्छे व्यवस्थापक और सरल डेटाबेस स्कीमा मैनिपुलेशन टूल की आवश्यकता है तो django ले लो। –

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