WSGI, CGI, और चौखटे कैसे जुड़े हुए हैं?
अपाचे पोर्ट 80 पर सुनता है। यह एक HTTP अनुरोध प्राप्त करता है। यह प्रतिक्रिया देने का तरीका खोजने के अनुरोध को पार्स करता है। अपाचे के पास जवाब देने के लिए बहुत सारे विकल्प हैं। प्रतिक्रिया देने का एक तरीका स्क्रिप्ट चलाने के लिए सीजीआई का उपयोग करना है। प्रतिक्रिया देने का दूसरा तरीका केवल एक फ़ाइल की सेवा करना है।
सीजीआई के मामले में, अपाचे एक वातावरण तैयार करता है और सीजीआई प्रोटोकॉल के माध्यम से स्क्रिप्ट को आमंत्रित करता है। यह एक मानक यूनिक्स फोर्क / एक्सिस स्थिति है - सीजीआई उपप्रकार सॉकेट और स्टडआउट सहित एक ओएस वातावरण विरासत में मिला है। CGI उपप्रकार एक प्रतिक्रिया लिखता है, जो अपाचे पर वापस जाता है; Apache ब्राउज़र को यह प्रतिक्रिया भेजता है।
सीजीआई आदिम और कष्टप्रद है। अधिकतर इसलिए कि यह हर अनुरोध के लिए एक उपप्रकार देता है, और प्रतिक्रिया के अंत को दर्शाने के लिए उपप्रकार को स्टडआउट या स्टेटर से बाहर निकलना चाहिए।
WSGI एक इंटरफ़ेस है जो CGI डिज़ाइन पैटर्न पर आधारित है। यह जरूरी नहीं है कि सीजीआई - इसमें प्रत्येक अनुरोध के लिए एक उपप्रकार का कांटा न हो। यह CGI हो सकता है, लेकिन यह होना जरूरी नहीं है।
WSGI CGI डिज़ाइन पैटर्न को कई महत्वपूर्ण तरीकों से जोड़ता है। यह आपके लिए HTTP रिक्वेस्ट हेडर्स को पार्स करता है और इन्हें पर्यावरण में जोड़ता है। यह किसी भी POST- उन्मुख इनपुट को पर्यावरण में एक फ़ाइल की तरह वस्तु की आपूर्ति करता है। यह आपको एक फ़ंक्शन भी प्रदान करता है जो प्रतिक्रिया को तैयार करेगा, आपको बहुत सारे स्वरूपण विवरणों से बचाएगा।
यदि मुझे अपने मूल सीजीआर कॉन्फ़िगरेशन पर वेब फ्रेमवर्क (वेबकेम या चेरीफी) कहना हो तो मुझे क्या जानना / स्थापित करना / करना होगा?
याद रखें कि एक उपप्रकार को जाली बनाना महंगा है। इसके आसपास काम करने के दो तरीके हैं।
Apache के अंदर Python एंबेडेडmod_wsgi
या एंबेडेडmod_python
; कोई प्रक्रिया कांटे की नहीं है। अपाचे सीधे Django आवेदन चलाता है।
डेमॉन mod_wsgi
या mod_fastcgi
अपाचे को WSGI प्रोटोकॉल का उपयोग करके एक अलग डेमॉन (या "लंबी चलने वाली प्रक्रिया") के साथ बातचीत करने की अनुमति देता है। आप अपनी लंबी चलने वाली Django प्रक्रिया शुरू करते हैं, फिर आप इस प्रक्रिया के साथ संचार करने के लिए Apache की mod_fastcgi को कॉन्फ़िगर करते हैं।
ध्यान दें कि mod_wsgi
या तो मोड में काम कर सकते हैं: एम्बेडेड या डेमॉन।
जब आप mod_fastcgi पर पढ़ते हैं, तो आप देखेंगे कि Django, mod_fastcgi द्वारा उपलब्ध कराई गई जानकारी से WSGI- संगत इंटरफ़ेस बनाने के लिए फ़्लॉप का उपयोग करता है । पाइपलाइन इस तरह काम करती है।
Apache -> mod_fastcgi -> FLUP (via FastCGI protocol) -> Django (via WSGI protocol)
Django के पास विभिन्न इंटरफेस के लिए कई "django.core.handlers" हैं।
Mod_fastcgi के लिए, Django एक प्रदान करता है manage.py runfcgi
जो FLUP और हैंडलर को एकीकृत करता है ।
Mod_wsgi के लिए, इसके लिए एक कोर हैंडलर है।
WSGI समर्थन कैसे स्थापित करें?
इन निर्देशों का पालन करें।
https://code.google.com/archive/p/modwsgi/wikis/IntegrationWithDjango.wiki
पृष्ठभूमि के लिए इसे देखें
http://docs.djangoproject.com/en/dev/howto/deployment/#howto-deployment-index