मेरा एप्लिकेशन सर्वर पक्ष पर uWSGI के साथ nginx का उपयोग करता है। जब मैं एक बड़ी अनुरोध (एक प्रतिक्रिया समय के साथ> 4s) करते हैं, निम्नलिखित प्रकट होता है:uWSGI ओएसईआरआरआई उठाता है: बड़े अनुरोध के दौरान त्रुटि लिखें
SIGPIPE: writing to a closed pipe/socket/fd (probably the client
disconnected) on request _URL_ (ip XX.XX.XX.XX) !!!
uwsgi_response_writev_headers_and_body_do(): Broken pipe
[core/writer.c line 287] during GET _URL_ (XX.XX.XX.XX)
OSError: write error
ऐसा लगता है कि uWSGI एक धारा में लिखने के लिए कोशिश करता है लेकिन इस धारा को पहले से ही बंद कर दिया गया। जब मैं nginx लॉग (error.log) की जाँच करें:
upstream prematurely closed connection while reading response
header from upstream ...
बेशक
, मेरे मुवक्किल (बाकी ग्राहक या ब्राउज़र) एक 502 त्रुटि प्राप्त करता है।
मुझे हमेशा यह त्रुटि ~ 4s के बाद मिलती है।
हालांकि, मुझे नहीं पता कि इस मुद्दे को कैसे रोकें। मैं अपने nginx कॉन्फ़िग फ़ाइल में कुछ मानकों सेट करने की कोशिश की:
location my_api_url {
[...]
uwsgi_buffer_size 32k;
uwsgi_buffers 8 32k;
uwsgi_busy_buffers_size 32k;
uwsgi_read_timeout 300;
uwsgi_send_timeout 300;
uwsgi_connect_timeout 60;
}
लेकिन समस्या अभी भी यहाँ है। मैं भी uWSGI विन्यास फाइल (wsgi.ini) में इन मानकों सेट करने की कोशिश की:
buffer-size=8192
ignore-sigpipe=true
ignore-write-errors=true
से पहले प्रतिक्रिया समय का अनुकूलन करने की कोशिश करने के लिए, मुझे आशा है कि इस मुद्दे पर एक समाधान है। मुझे ऐसा कोई नहीं मिला जो किसी अन्य पोस्ट में काम कर रहा हो। मैं बड़ी मात्रा में डेटा के साथ काम करता हूं, इसलिए कुछ मामलों के लिए मेरा प्रतिक्रिया समय 4-10 के बीच होगा।
आशा है कि आप मेरी मदद कर सकते हैं :)
बहुत पहले से धन्यवाद।
क्या आप प्रॉक्सी या कुछ के पीछे एनजीआईएनएक्स हैं? आमतौर पर त्रुटि तब होती है जब ग्राहक ने कनेक्शन को पहले से बंद कर दिया। –