2011-10-12 12 views
55

WSGI VS uWSGI का उपयोग Nginx के साथ किसी भी व्यक्ति को पेशेवर/विपक्ष की व्याख्या कर सकता है।WGGI बनाम uWSGi Nginx

वर्तमान में मैं Django वेबसाइट के लिए एक उत्पादन सर्वर का निर्माण कर रहा हूं जिसे मैंने तैयार किया है लेकिन यह तय करने में असमर्थ है कि मुझे डब्लूएसजीआई या यूडब्ल्यूएसजीआई के साथ जाना चाहिए या नहीं। क्या आप विस्तार से समझा सकते हैं कि प्रत्येक कॉन्फ़िगरेशन में क्या अंतर होता है? कौन सा कॉन्फ़िगरेशन सबसे अच्छा स्केल करना चाहिए?

अग्रिम

+18

डब्लूएसजीआई एक विनिर्देश है। यूडब्ल्यूएसजीआई डब्लूएसजीआई विनिर्देश का कार्यान्वयन प्रदान करता है। आप उनकी तुलना नहीं कर सकते। आप केवल विभिन्न कार्यान्वयन की तुलना कर सकते हैं। –

+0

http: // segmentfault।कॉम/ए/1190000004294634 – zx1986

उत्तर

2

This blog post धन्यवाद अजगर WSGI सर्वर की बहुत की एक बहुत ही विस्तृत तुलना, एक सारांश और अंत में कुछ सिफारिशों के साथ है।

+2

और कुछ सर्वरों के लिए कॉन्फ़िगरेशन का भी उपयोग करता है जो वास्तव में डोडी हैं और उन्हें होने से भी बदतर दिखाई देता है। एक को सावधान रहना होगा कि उस तुलना में कोई क्या पढ़ता है। –

23

आमतौर पर पाइथन को आपके मुख्य वेब सर्वर से अलग प्रक्रिया में चलाने के लिए सबसे अच्छा है। इस तरह, वेब सर्वर में बहुत से छोटे धागे हो सकते हैं जो स्थिर सामग्री को वास्तव में तेज़ करते हैं, जबकि आपकी अलग पाइथन प्रक्रिया बड़ी और हेवीवेट होगी और प्रत्येक अपना पाइथन दुभाषिया चलाएगा। तो सादा WSGI खराब है, क्योंकि यह आपके बड़े अक्षरों के धागे को एक बड़े पायथन दुभाषिया के साथ फहराता है। flup या gunicorn या uWSGInginx के पीछे nginx का उपयोग करना बहुत बेहतर है, क्योंकि यह केवल सामग्री की सेवा करने के लिए nginx को मुक्त करता है, और आपको चुनने देता है कि कितने छोटे हल्के नाइजीएक्स धागे चलने के लिए स्वतंत्र रूप से आपकी पसंद के कितने हेवीवेट पायथन थ्रेड गतिशील सामग्री। फिलहाल लोग gunicorn से बहुत खुश हैं, लेकिन इनमें से किसी भी तीन विकल्पों को ठीक काम करना चाहिए।

आगे बढ़ते हुए, यह आपको पाइथन को दूसरे सर्वर पर ले जाने के लिए भी मुक्त करता है जब भार गंभीर होने लगता है।

+1

आपके उत्तर से थोड़ी उलझन में है। मैं नहीं देख सकता कि उन्होंने nginx के अंदर किसी भी प्रकार के डब्लूएसजीआई कार्यान्वयन को चलाने का उल्लेख किया है। उन्होंने मुख्य wsgi.org साइट का संदर्भ दिया। डब्लूएसजीआई और यूडब्ल्यूएसजीआई के बीच उनकी मूल तुलना इस प्रकार पहली जगह में मूर्खतापूर्ण है क्योंकि यूडब्ल्यूएसजीआई डब्लूएसजीआई विनिर्देश का कार्यान्वयन है। आपने अपने आप को सामान्य डब्लूएसजीआई शब्द का उपयोग एक भ्रमित तरीके से कहा है कि 'यह आपके बड़े अक्षरों के धागे को एक बड़े पायथन दुभाषिया के साथ फहराता है'। डब्लूएसजीआई विनिर्देश स्वयं ऐसा नहीं कर सकता, केवल कार्यान्वयन ही कर सकता है। –

+1

अगर हम nginx + mod_wsgi (प्लग करने योग्य मॉड्यूल) और nginx + uWSGI (एप्लिकेशन सर्वर कंटेनर) की तुलना कर रहे थे तो यह समझ में आ सकता है। – clime

+0

तो जब पाइथन वेब ऐप्स चलाने के लिए Nginx का उपयोग करने की बात आती है, चूंकि मैनिलियो पेरिलो का mod_wsgi डेडवेयर है और अनुशंसित नहीं है, तो अच्छे समाधान या तो डब्ल्यूएसजीआई या तो बंदूक या यूडब्ल्यूएसजीआई या फ्लॉप के साथ फास्टसीजीआई के साथ हैं? – Gulbahar

68

ठीक है, लोग इस भ्रम के कारण कई स्रोतों से विस्तार की कमी और इन प्रोटोकॉल का नामकरण और वास्तव में डब्लूएसजीआई क्या है।

सारांश:

  1. WSGI और uwsgi दोनों प्रोटोकॉल, नहीं सर्वर हैं। इसका उपयोग भार संतुलन के लिए वेब सर्वर के साथ संवाद करने के लिए किया जाता है और विशेष रूप से अतिरिक्त सुविधाओं का लाभ उठाने के लिए जो शुद्ध HTTP प्रदान नहीं कर सकता है। अब तक Nginx और चेरोकी ने इस प्रोटोकॉल को लागू किया है।
  2. uWSGI एक सर्वर है और यह प्रोटोकॉल में से एक है जो इसे लागू करता है WSGI (uWsgi सर्वर के साथ uwsgi प्रोटोकॉल को भ्रमित न करें)। डब्ल्यूएसजीआई एक पायथन specification है। डब्लूएसजीआई विनिर्देश के कई कार्यान्वयन हैं और इसका उद्देश्य केवल एप्लिकेशन सर्वर/वेब सर्वर से अधिक के लिए उपयोग किया जाना है, लेकिन वहां कुछ डब्लूएसजीआई एप्लीकेशन सर्वर हैं (यानी चेरीपी, जो उत्पादन तैयार होता है डब्लूएसजीआई अनुपालन वेब सर्वर , अगर आप पहले से ही उलझन में नहीं थे!)।
  3. WSGI से uwsgi की तुलना करना संतरे से संतरे की तुलना कर रहा है।
+3

टाइपो: "1. ** uwsgi ** एक प्रोटोकॉल सर्वर नहीं है।" -> "1. ** डब्लूएसजीआई ** एक प्रोटोकॉल सर्वर नहीं है।" – Aman

+6

दरअसल, जो मैंने 1 के लिए लिखा है वह सही है, लेकिन यह सच है डब्लूएसजीआई एक प्रोटोकॉल और यूवीजीआई है, इसलिए आपके द्वारा लिखे गए दोनों कथन सही हैं :)। बेशक, 1 के बाकी संदर्भ के बिना। यह यूडब्ल्यूएसजीआई सर्वर द्वारा उपयोग किया जाने वाला प्रोटोकॉल है। http://wiki.nginx.org/HttpUwsgiModule, - "uwsgi प्रोटोकॉल को uWSGI सर्वर (जो यूवीजीआई प्रोटोकॉल बोलता है) के साथ भ्रमित न करें" –

+3

आह, ठीक है। मैंने सोचा था कि आप कथन 1 के बीच एक contarst आकर्षित करने की कोशिश कर रहे थे। "Wsgi एक प्रोटोकॉल है .." और 2. "uwsgi एक सर्वर है जो प्रोटोकॉल लागू करता है"। – Aman

12

मुझे विश्वास है कि यह सही है http://flask.pocoo.org/docs/deploying/uwsgi/ भ्रम को दूर करने का एक अच्छा जवाब है। सवाल मूर्ख नहीं है, जो किसी भी शब्द को देखता है और इस बारे में कोई पूर्व जानकारी नहीं है कि चीजें कैसे mod_PHP दुनिया के बाहर काम करती हैं (उदाहरण के लिए PHP या लोगों के खिलाफ कुछ भी नहीं)

साइट व्यावहारिक शर्तों में व्याख्या करने के लिए अच्छी तरह से काम करती है आवश्यक है और nginx के लिए एक अच्छा तैनाती उदाहरण के साथ-साथ अंतर क्या है।

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