मेरे मामले में, मैं अधीर था और लॉग की गलत व्याख्या कर रहा था।
वास्तव में, वास्तविक समस्या नगनेक्स और उव्सगी के बीच का संचार था, न कि ब्राउज़र और नग्नेक्स के बीच। अगर मैंने अपने ब्राउज़र में साइट को लोड किया था और काफी समय तक इंतजार किया था तो मुझे "504 - बैड गेटवे" मिल गया होगा। लेकिन इसमें इतना समय लगा, कि मैं सामान रखने की कोशिश करता रहा, और फिर ब्राउज़र में ताज़ा हो गया। इसलिए मैंने 504 त्रुटि को देखने के लिए लंबे समय तक इंतजार नहीं किया। ब्राउज़र में ताज़ा करते समय, जब कि पिछला अनुरोध बंद हो जाता है, और नेग्नेक्स लिखते हैं कि लॉग में 499 है।
विस्तार
यहाँ मैं यह मानूंगा कि पाठक को तब तक कम पता है जब मैंने खेलना शुरू किया था।
मेरा सेटअप एक रिवर्स प्रॉक्सी, nginx सर्वर और एक एप्लिकेशन सर्वर था, इसके पीछे uWSGI सर्वर था। क्लाइंट से सभी अनुरोध nginx सर्वर पर जाएंगे, फिर uWSGI सर्वर पर भेज दिया जाएगा, और फिर प्रतिक्रिया को उसी तरह वापस भेज दिया जाएगा। मुझे लगता है कि यह कैसे हर कोई nginx / uwsgi का उपयोग करता है और इसका उपयोग करने वाले हैं।
मेरे नगनेक्स को काम करना चाहिए जैसा कि होना चाहिए, लेकिन कुछ uwsgi सर्वर के साथ गलत था। दो तरीके (शायद अधिक) हैं जिसमें uwsgi सर्वर नेगनेक्स सर्वर का जवाब देने में विफल हो सकता है।
1) uWSGI कहता है, "मैं प्रसंस्करण कर रहा हूं, बस इंतजार करें और आपको जल्द ही प्रतिक्रिया मिल जाएगी"। nginx में समय की एक निश्चित अवधि होती है, यह 20 सेकंड fx, प्रतीक्षा करने के लिए तैयार है। उसके बाद, यह 504 त्रुटि के साथ क्लाइंट को जवाब देगा।
2) uWSGI मर चुका है, या uWSGi मर जाता है, जबकि nginx इसके लिए इंतजार कर रहा है। nginx इसे तुरंत और उस स्थिति में देखता है, यह 499 त्रुटि देता है।
मैं क्लाइंट (ब्राउज़र) में अनुरोध करके अपने सेटअप का परीक्षण कर रहा था। ब्राउजर में कुछ नहीं हुआ, बस लटका रहा। शायद 10 सेकंड (टाइमआउट से कम) के बाद, मैंने निष्कर्ष निकाला कि कुछ सही नहीं था (जो सच था), और कमांड लाइन से uWSGI सर्वर को बंद कर दिया। तब मैं uWSGI सेटिंग्स में जाता, कुछ नया करने की कोशिश करता और फिर uWSGI सर्वर को रीस्टार्ट करता। जिस क्षण मैंने uWSGI सर्वर को बंद किया, nginx सर्वर 499 त्रुटि लौटाएगा।
इसलिए मैं 499 इर्रो के साथ डिबगिंग करता रहा, जिसका अर्थ है 499 त्रुटि के लिए गोलगप्पा। लेकिन अगर मैं काफी देर तक इंतजार करता, तो मुझे 504 त्रुटि मिलती। अगर मैं 504 त्रुटि प्राप्त कर लेता, तो मैं समस्या को बेहतर ढंग से समझ पाता, और फिर डिबग कर पाता।
तो निष्कर्ष यह है, कि समस्या uWGSI के साथ थी, जो लटका रहा ("थोड़ी देर प्रतीक्षा करें, अभी थोड़ी देर है, तो मेरे पास आपके लिए एक उत्तर होगा ...")।
मैंने उस समस्या को कैसे ठीक किया , मुझे याद नहीं है। मुझे लगता है कि यह बहुत सारी चीजों के कारण हो सकता है।