2012-06-26 10 views
22

का उपयोग करने का नुकसान क्या है मैं अपने कुछ Django परियोजनाओं के लिए उत्पादन पर nginx + fastcgi (manage.py runfcgi ...) का उपयोग कर रहा हूं। बहुत से लोग nginx + gunicorn का उपयोग करने का सुझाव देते हैं। Django के fastcgi सर्वर का उपयोग करने के बजाय गनिकोर्न का उपयोग करने का क्या फायदा है?Django के fastcgi सर्वर

+0

इसके अलावा, uwsgi देखें। –

+1

फास्टसीजीआई संस्करण 1.7 के बाद से बहिष्कृत: फास्टसीजीआई समर्थन को हटा दिया गया है और Django 1.9 में हटा दिया जाएगा, इसलिए मैं सुझाव देता हूं कि यूडब्ल्यूएसजीआई के लिए जाएं। – ashish

उत्तर

28

मैं सिर्फ बताओ तुम्हें क्यों WSGI की तरह सर्वर का उपयोग करने की आवश्यकता है :) लेकिन अगर आप fcgi का उपयोग कर के साथ सहज महसूस - बस का उपयोग यह

लघु जवाब: (प्रोटोकॉल के रूप में) WSGI अच्छा है क्योंकि its native

या यदि आपको "गहराई से जाना है" (सी)

अगला प्रश्न "फास्टसीजीआई बनाम डब्लूएसजीआई-जैसे सर्वर?"

यहां कुछ उत्तर:

बारे gunicorn, uWSGI और चेरोकी, nginx। उन्हें मिश्रण मत करो!

nginx वेब-सर्वर है जो http अनुरोधों को संभाल सकता है और इसे डब्लूएसजीआई बैकएंड में भेज सकता है। (लेकिन सबसे पहले स्थिर सामग्री हैंडलिंग के लिए यह तेजी से तेज़ है।) और डब्लूएसजीआई बैकएंड आपको django एप्लिकेशन संभालता है।

चेरोकी के बारे में, मुझे लगता है कि यह nginx के समान कार्यों को संभालता है लेकिन मैं इसके साथ काम नहीं कर रहा हूं।

और gunicorn, uWSGI एक सर्वर है कि केवल यूनिक्स की तरह प्लेटफार्मों पर चलाता है, गेंडा दृढ़ता से किया जा रहा है WSGI बैकएंड जो Django अनुप्रयोग के साथ धागे चलाने के लिए और many other tasks

और कर हममम, gunicorn say कि

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

मैं अपने Django के लिए अभ्यास + uWSGI (Debian अस्तबल से) (nginx.org रेपोस से नवीनतम स्थिर) nginx एप्लिकेशन - पूरी तरह से काम करता है :)


संपादित 18.05।2012

लिंक 2010 fcgi gunicorn uWSGI

fcgi (पिरोया) 640 r/s

fcgi (prefork 4 प्रोसेसर) 240 r/s (*)

gunicorn की तुलना के साथ विषय के लिए (2 श्रमिकों) 1100 r/s

gunicorn (5 श्रमिकों) 1300 r/s

gunicorn (10 wo rkers) 1200 r/s (?!?)

uwsgi (2 श्रमिकों) 1800 r/s

uwsgi (5 श्रमिकों) 2100 r/s

uwsgi (10 श्रमिकों) 2300 r/s

+7

"फास्टसीजीआई बनाम डब्ल्यूएसजीआई" गलत सवाल है। फास्टसीजीआई एक नेटवर्क प्रोटोकॉल है और डब्लूएसजीआई एक पायथन कॉलिंग सम्मेलन है। [फ्लुप] (http://trac.saddi.com/flup) में फास्टसीजीआई-टू-डब्लूएसजीआई गेटवे है। Django की 'runfcgi' कमांड वास्तव में फ्लुप पर आधारित है, और इस प्रकार डब्लूएसजीआई का उपयोग करता है। एक बेहतर सवाल फ्लुप बनाम uwsgi या फ्लुप बनाम gunicorn है। –

+0

आप "फास्टसीजीआई बनाम डब्ल्यूएसजीआई" के बारे में सही हैं। विषय में WSGI- जैसे बदलें। और मुझे लगता है कि युद्ध 'फ्लुप बनाम यूवस्सी बनाम गनिकोर्न' जीत यूडब्ल्यूएसजीआई। मैं जल्द ही कुछ सबूत प्रदान करने की कोशिश करूंगा। – nk9

+3

ठीक है, जो "जीतता है" आपके मानदंडों पर निर्भर करता है। मैं कम यातायात वाले दर्जन साइटों की मेजबानी कर रहा हूं, इसलिए रखरखाव और स्मृति उपयोग में आसानी * मेरे लिए * कच्चे प्रदर्शन की तुलना में अधिक महत्वपूर्ण है (जो किसी भी तरह से डेटाबेस प्रश्नों का प्रभुत्व है।) Uwsgi डेबियन निचोड़ (वर्तमान स्थिर) में पैक नहीं किया गया है , जबकि फ्लुप और बंदूकें हैं। –

4

b1- कहते हैं, WSGI निवासी है (this post पर एक नज़र डालें) (* यह मेरा कंप्यूटर असाधारण सुस्त सीपीयू के रूप में जब छत के माध्यम से किया)।

इसके अलावा, this post का एक समान प्रश्न है।

मेरे व्यक्तिगत दृष्टिकोण से, कुछ समय पहले मैं अपने सर्वर पर विभिन्न प्रोजेक्ट चलाने के लिए Nginx + uwsg in vhost mode का उपयोग कर रहा हूं।

+0

... और यूडब्ल्यूएसजीआई में ज़र्ग मोड^_^है – nk9

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