पर http abort/close का प्रचार करें मेरे पास एक Django एप्लिकेशन वेब एप्लिकेशन है, और मैं सोच रहा था कि क्या nginx uwsgi/Django के पास/बंद करने के लिए संभव था।एनजीएक्सएक्स से uwsgi/Django
मूल रूप से मैं जानता हूँ कि nginx समय से पहले बीच में बंद करें/के बारे में पता पास uwsgi_ignore_client_abort
"बंद" क्योंकि यह चूक है, और आप अपने nginx लॉग में nginx 499 त्रुटियों जब अनुरोध निरस्त किया गया/बंद कर दिया प्रतिक्रिया भेजे जाने से पहले कर रहे हैं। एक बार uwsgi अनुरोध को संसाधित करने के बाद यह एक "आईओ त्रुटि" फेंकता है जब यह nginx पर प्रतिक्रिया वापस करने के लिए जाता है।
uwsgi_ignore_client_abort
को "चालू" पर बदलना सिर्फ nginx को निरस्त/बंद करने से अनजान बनाता है, और uwsgi "IO त्रुटियों" को हटा देता है क्योंकि uwsgi अभी भी nginx पर वापस लिख सकता है।
मेरा उपयोग मामला यह है कि मेरे पास एक ऐसा एप्लिकेशन है जहां लोग कुछ AJAX परिणामों के माध्यम से बहुत जल्दी परिणाम देते हैं, और इसलिए यदि मैं जल्दी से पेज के माध्यम से लंबित AJAX अनुरोध को छोड़ देता हूं, तो यह क्लाइंट को साफ और कुशल रखता है । लेकिन यह सर्वर पक्ष (uwsgi/Django) के लिए कुछ भी नहीं करता है क्योंकि उन्हें अभी भी प्रत्येक अनुरोध को संसाधित करना पड़ता है भले ही प्रतिक्रिया के लिए कुछ भी इंतजार नहीं करेगा।
अब स्पष्ट रूप से कुछ पेज हो सकते हैं, जहां मैं नहीं चाहता कि अनुरोध किसी भी कारण से समय-समय पर निरस्त हो जाए। लेकिन मैं लंबे समय से चलने वाले अनुरोधों के लिए अजवाइन का उपयोग करता हूं जो उस श्रेणी में पड़ सकता है।
तो क्या यह संभव है? uwsgi's
हरियाकारी सेटिंग मुझे लगता है कि यह कुछ स्तर पर है .... बस यह नहीं पता कि इसे कैसे किया जाए।
यूडब्ल्यूएसजीआई और एनजीआईएनएक्स मेलिंग सूचियों पर क्यों नहीं पूछना है? – silpol
हाँ कोई बुरा विचार नहीं है। मैंने यूडब्ल्यूएसजीआई के आईआरसी चैनल को आजमाया लेकिन मुझे नहीं लगता कि मैंने खुद को समझाते हुए बहुत अच्छा काम किया है। मुझे लगता है कि शायद मैं फिर से इस सवाल से जुड़ने की कोशिश कर सकता हूं। – byoungb
बस जिज्ञासु, uwsgi एक is_connected समारोह है। ऐसे मामलों में जहां आपने कनेक्शन समाप्त कर दिया है, क्या यह फ़ंक्शन गलत है? ऐसा लगता है कि समस्या वास्तव में uwsgi पक्ष पर है क्योंकि Nginx दस्तावेज़ों का कहना है कि सेटिंग proxy_ignore_client_abort और uwsgi_ignore_client_abort दोनों deafult द्वारा बंद हैं। – jaywhy13