अस्वीकरण:Django, nginx के साथ कस्टम गुम शीर्षक और gunicorn
मैं एक परियोजना जहां एक "विशाल" webapp मोबाइल के लिए एक API है जो अस्तित्व में काम कर रहा हूँ, इसलिए बदल एपीआई एक विकल्प नहीं है।
यह आवेदन समय पहले विकसित किया गया था और कई डेवलपर्स इस पर काम किया है,
कहा करने के बाद समस्या यह है कि,;
इस साइट के मोबाइल के लिए एपीआई में (रिटर्न की तुलना में सिर्फ विचारों json डेटा), कोड एक टोकन की तलाश में है, लेकिन अनुरोध के शीर्ष लेख में करता है:
token = request.META.get('HTTP_TOKEN')
जब मैं इस एपीआई स्थानीय स्तर पर परीक्षण, ठीक काम करता है, लेकिन उत्पादन में ऐसा नहीं होता है, इसलिए, मैं यह पता लगाने की कोशिश करता हूं कि क्या हो रहा है और यह पाया गया:
डीजेंगो हेडर में परिवर्तित करता है, कस्टम हेडर भी अनुरोध में चाबियाँ। एमएमटीए, मैं परीक्षण के लिए urllib2 और requests का उपयोग करता हूं एपीआई और उत्पादन में समस्या यह है कि उत्पादन सर्वर में अनुरोध। एमटीटीए की कभी भी HTTP_TOKEN नामक कुंजी नहीं है, इसलिए, डीबग का थोड़ा सा करना उत्सुकता से सोचें कि समस्या जिस तरह से हम django अनुप्रयोग की सेवा करते हैं।
हम django1.3, nginx, gunicorn, virtualenvwrapper, python2.7 का उपयोग कर रहे हैं।
मेरा मुख्य संदिग्ध nginx है, मुझे लगता है कि, किसी भी समय nginx में हेडर प्राप्त होता है लेकिन इसे 'डीजेंगो को आगे बढ़ाएं, मैं इसके बारे में कुछ शोध करने की कोशिश करता हूं, लेकिन मुझे केवल सुरक्षा हेडर और कस्टम हेडर के बारे में जानकारी मिली है, लेकिन मुझे दस्तावेज़ या nginx को बताने के बारे में कुछ नहीं मिलता है जो उस शीर्षलेख को अनुमति देता है और इसे हटा नहीं देता है।
मुझे यहां मदद की ज़रूरत है, अगर पहली बात यह है कि nginx हेडर प्राप्त करता है, लेकिन मुझे सिर्फ nginx के बारे में कुछ पता है और मुझे नहीं पता कि अनुरोधों के शीर्षलेखों को लॉग इन करने के लिए इसे कैसे बताना है।
धन्यवाद
अद्यतन
आपको लगता है कि इस धारणा को साबित कर सकते हैं? Nginx और django दोनों से एक अनुरोध लॉग इन करें, और सुनिश्चित करें कि HTTP शीर्षलेखों में वास्तव में एक अंतर है। –
भाग में यह समस्या है, परीक्षण में, urllib2 का उपयोग करके एक स्क्रिप्ट और अनुरोध मैं उन शीर्षकों को निश्चित करता हूं जिन्हें मैं भेजता हूं, दृश्य में मैं हेडर को प्राप्त करता हूं, डेवलपर सर्वर में, हेडर ठीक होते हैं, लेकिन उत्पादन में django प्राप्त नहीं होता है HTTP_TOKEN शीर्षलेख। – diegueus9
इसके साथ में मैं nginx प्रिंट अनुरोध हेडर को कहने का एक तरीका ढूंढ रहा हूं लेकिन डॉक्टर थोड़ा भयानक है – diegueus9