/ / Django App की तैनाती के लिए रणनीतियाँ - django, apache, वेब-परिनियोजन

Django ऐप - django, apache, वेब परिनियोजन तैनात करने के लिए रणनीतियां

मेरा एक प्रश्न है जो शायद django- संबंधित विकास की तुलना में अधिक सामान्य है। पृष्ठभूमि काफी सरल है:

मैं एक ऐसे प्रोजेक्ट पर काम कर रहा हूं, जिसके पेज ज्यादातर हैंएक वेब एप्लिकेशन से जुड़ा हुआ है (यह वही है जो मैं Django के लिए उपयोग कर रहा हूं)। हालांकि, ऐप-संबंधित पृष्ठों के अलावा, कुछ सहायक पृष्ठ हैं (जैसे लैंडिंग पृष्ठ, फ़ेक पेज, संपर्क पृष्ठ आदि), जिनका मूल रूप से वेब ऐप से कोई लेना-देना नहीं है।

ऐसी तैनाती के लिए मानक रणनीति क्या हैएक प्रोजेक्ट? यह Django के माध्यम से इन स्थिर पृष्ठों के लिए मार्ग अनुरोधों के लिए त्रुटिपूर्ण लगता है। क्या समझ में आता है कि दो सर्वर चल रहे हैं: Django ऐप चलाने के लिए एक जिम्मेदार और एक अलग सर्वर जो स्थिर पृष्ठों (वेब ​​साइट के ऐप भाग द्वारा उपयोग किए जाने वाले, शायद, स्थैतिक सामग्री सहित) की सेवा के लिए ज़िम्मेदार है।

ऐसे कुछ मार्गदर्शक सिद्धांत कौन से हैं जिन्हें ये निर्णय लेते समय नियोजित किया जाना चाहिए?

उत्तर:

उत्तर № 1 के लिए 4

यह एक स्थिर साइट या किसी अन्य CMS के साथ Django को साइड में चलाने के लिए असामान्य नहीं है।

आपको स्थिर सामग्री या CMS के अनुरोध को रूट करने के लिए फ्रंट एंड सर्वर की आवश्यकता होगी।

दो सामान्य रणनीतियाँ हैं:

  1. मार्ग निर्धारित करने के लिए URL उपसर्ग का उपयोग करें (उदा। example.com/static/ to static files and example.com/ to Django)। आपको स्थिर सामग्री या किसी अन्य फ्रेमवर्क / भाषा में लिखे गए वेब ऐप / CMS के अनुरोध को रूट करने के लिए फ्रंट एंड सर्वर की आवश्यकता होगी (यह अपाचे में एलियास निर्देश के साथ कॉन्फ़िगर किया गया है)।

  2. एप्लिकेशन सर्वर और स्टेटिक फाइल सर्वर को रखेंअलग-अलग डोमेन / सबडोमेन (उदा। static.example.com से static और app.example.com to Django)। आप एक एकल मशीन पर सेवा करने के लिए फ्रंट एंड सर्वर को कॉन्फ़िगर करके ऐसा कर सकते हैं (यह अपाचे पर वर्चुअलबॉस्ट के साथ कॉन्फ़िगर किया गया है) या अलग मशीन। किसी भी स्थिति में, आपको अपने उप-डोमेन को सही मशीन (नों) की ओर इंगित करने के लिए DNS को कॉन्फ़िगर करने की आवश्यकता है।

पूर्व सेटअप करने के लिए सरल है, लेकिन उत्तरार्द्ध आपको बेहतर पैमाने देने की अनुमति देता है।

आमतौर पर एक एप्लिकेशन सर्वर को समाप्त करने के लिए उपयोग किए जाने वाले सर्वर में Apache, Nginx या uWSGI शामिल होते हैं, लेकिन बहुत अधिक उत्पादन-गुणवत्ता वाला वेब सर्वर इसे कर सकता है।

वास्तव में Django के तैनाती प्रलेखन (जैसे। अमरीका की एक मूल जनजाति) हमेशा आपको अपने स्थिर होने का निर्देश देगाDjango केवल इंस्टालेशन में फ्रंट एंड सर्वर द्वारा सेव की गई फाइलें, जैसे कि Django वेयरन "ने फ्रंट एंड वेब सर्वर के विपरीत स्टेटिक कंटेंट को कुशलतापूर्वक परोसने के लिए डिज़ाइन किया है।

The django.contrib.staticfiles ऐप Django के लिए एक अलग सर्वर पर होस्ट की गई स्थिर फ़ाइल का उल्लेख करने के लिए संभव बनाने के लिए है और विकास के दौरान Django "s अंतर्निहित सर्वर के साथ स्थिर सामग्री की सेवा के बीच आसानी से स्विच करता है लेकिन उत्पादन पर फ्रंट एंड सर्वर के साथ।