2010-04-07 18 views
16

क्या कोई डिमन मोड में apache mod_wsgi और थ्रेडेड मोड में django fastcgi के बीच अंतर को समझा सकता है। वे दोनों मुझे लगता है कि समेकन के लिए धागे का उपयोग करें। मान लीजिए कि मैं nginx का उपयोग apache mod_wsgi के सामने के अंत के रूप में कर रहा हूं।Django को तैनात करना (fastcgi, apache mod_wsgi, uwsgi, gunicorn)

अद्यतन:

मैं 'डेमॉन' मोड में Django FastCGI में बनाया (./ manage.py विधि = पिरोया maxchildren = 15) और mod_wsgi (WSGIDaemonProcess उदाहरण धागे = 15) की तुलना कर रहा हूँ। वे दोनों धागे का उपयोग करते हैं और जीआईएल हासिल करते हैं, क्या मैं सही हूँ?

UPDATAE 2:

तो अगर वे दोनों समान हैं, वहाँ अपाचे mod_wsgi FastCGI के खिलाफ की किसी भी लाभ है।

:

  • हम
  • मैंने देखा FastCGI कम भूमि के ऊपर

UPDATAE 3 है कि अपाचे

  • हम उपभोग कम रैम की जरूरत नहीं है: मैं FastCGI के इस तरह के पेशेवरों को देखने के

    अब मैं nginx + uwsgi से खुश हूं।

    UPDATAE 4:

    मैं अब के साथ खुश हूँ nginx + gunicorn :)

  • उत्तर

    10

    न तो समवर्ती अनुरोधों को हैंडल करने में सक्षम होने के धागे का उपयोग करना होगा। यह इस बात पर निर्भर करता है कि आप उन्हें कैसे कॉन्फ़िगर करते हैं। आप कई प्रक्रियाओं का उपयोग कर सकते हैं जहां आप चाहते हैं कि प्रत्येक एकल धागा हो।

    mod_wsgi प्रक्रिया/सूत्रण मॉडल पर अधिक पृष्ठभूमि के लिए देखें:

    http://code.google.com/p/modwsgi/wiki/ProcessesAndThreading

    मॉडल mod_wsgi यद्यपि समान हैं प्रक्रिया प्रबंधन ही संभालती है। FASTCGI में क्या होता है, जहां तक ​​प्रक्रिया प्रबंधन आप जिस फास्टसीजीआई होस्टिंग तंत्र का उपयोग कर रहे हैं उस पर निर्भर करता है और आप यह नहीं कहते कि वह क्या है।

    एक और अंतर यह है कि फास्टसीजीआई को अभी भी डब्लूएसजीआई पुल जैसे फ्लूप के लिए एक अलग फास्टसीजीआई की आवश्यकता है, जहां mod_wsgi को किसी भी प्रकार के पुल की आवश्यकता नहीं है क्योंकि डब्लूएसजीआई इंटरफ़ेस को मूल रूप से लागू किया जाता है।

    अंत में, FASTCGI प्रक्रिया कुछ पर्यवेक्षक प्रक्रिया या वेब सर्वर का एक निष्पादन/कांटा है, जो होस्टिंग तंत्र पर निर्भर है। Mod_wsgi में प्रक्रिया केवल अपाचे पैरेंट प्रक्रिया का एक कांटा है। आम तौर पर इससे कोई फर्क नहीं पड़ता लेकिन कुछ प्रभाव पड़ता है।

    अन्य मतभेद हैं लेकिन वे अधिक उत्पन्न होते हैं क्योंकि mod_wsgi फास्टसीजीआई होस्टिंग तंत्र की तुलना में बहुत अधिक कार्यक्षमता और कॉन्फ़िगरेशन प्रदान करता है।

    वैसे भी, सवाल थोड़ा अस्पष्ट है, क्या आप इस बारे में अधिक विशिष्ट हो सकते हैं कि आप दोनों के बीच क्या जानना चाहते हैं या इसके विपरीत हैं और क्यों? उत्तर शायद बेहतर लक्षित किया जा सकता है।

    +0

    मैं फास्टसीजी (./ प्रबंधन में निर्मित django की तुलना कर रहा हूं।पीई विधि = थ्रेडेड maxchildren = 15) और 'daemon' मोड में mod_wsgi (WSGIDaemonProcess उदाहरण धागे = 15)। –

    +0

    हां, वे दोनों समवर्ती अनुरोधों को संभालने के लिए मल्टीथ्रेडिंग पर भरोसा करते हैं। जीआईएल का उपयोग तब भी किया जाता है जब एक सिंगल थ्रेस्ड डब्लूएसजीआई सर्वर, आप पाइथन स्रोत कोड को पुन: संकलित किए बिना थ्रेडिंग सपोर्ट को अक्षम किए बिना आसानी से इससे बच सकते हैं। ऐसा करें और आप mod_wsgi का उपयोग नहीं कर सकते क्योंकि यह पाइथन का समर्थन नहीं करता है जिसमें थ्रेडिंग अक्षम है। –

    +0

    आपका क्या मतलब है "जीआईएल का उपयोग किया जाता है भले ही एक थ्रेडेड डब्लूएसजीआई सर्वर"? क्या यह तब प्रयोग किया जाता है जब हम mod_wsgi को धागे की बजाय कांटा प्रक्रियाओं में कॉन्फ़िगर करते हैं? –

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