अपाचे प्रॉक्सी टाइमऑट


19

मैं यह समझने की कोशिश कर रहा हूं कि हमारे Apache 2.2 error_log में निम्नलिखित संदेश के साथ क्या हो रहा है:

Wed May 18 21:03:29 2011] [error] [client 172.20.10.10] (70007)The timeout specified has expired: proxy: error reading status line from remote server super-load1-ga.test.com, referer: https://tester2.test.com/boom/ga/inside.asपी

हम mod_proxy के साथ Apache 2.2 चला रहे हैं। क्या यह अपाचे httpd.conf में अपने 5 मिनट के समय मान से संबंधित अनुरोध को समाप्त कर रहा है? (मतलब यह 5 मिनट में रिमोट सर्वर से प्रतिक्रिया प्राप्त नहीं करता है।) या यह बस रिमोट सर्वर से एक प्रतिक्रिया है कि यह कनेक्शन को संभाल नहीं सकता है?

जिस समय मुझे यह त्रुटि दिखाई देती है, अपाचे तेजी से अपने MaxClients से बाहर निकल जाता है।

प्रॉक्सी प्रविष्टि का त्वरित उदाहरण:

ProxyPass /boom/ga https://super-load1-ga.test.com
ProxyPassReverse /boom/ga https://super-load1-ga.test.com

जवाबों:


28

आप ProxyPass निर्देश में टाइमआउट बढ़ाएँ :

ProxyPass /boom/ga https://super-load1-ga.test.com connectiontimeout=300 timeout=300

टाइमआउट मान सेकंड में हैं


6
यदि आप पहले से ही ProxyPass टाइमआउट तर्क को परिभाषित नहीं कर रहे हैं, तो आपके वैश्विक Timeoutमूल्य का उपयोग किया जाएगा। Httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypass httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxytimeout और httpd.apache.org/docs/2.2/mod/core
सिंक करें

मैं भी भूगोल त्रुटि कर रहा हूँ निर्दिष्ट समय समाप्त हो गया है .... मेरे पास ProxyRequests है तो यह संबंधित है? क्या मुझे इसे टाइमआउट बढ़ाने के लिए करना चाहिए ......
आशीष करपे

5

ऐसा लगता है कि आपका सर्वर https://super-load1-ga.example.comप्रतिक्रिया देने में बहुत लंबा समय ले रहा है।

उस परिदृश्य में, अगर यह बस वहां बैठता है तो अपाचे प्रक्रिया इसके लिए इंतजार करने वाली है। यह प्रक्रिया अनिवार्य रूप से अवरुद्ध है, अर्थात कुछ और नहीं कर सकते। यदि आपके पास पर्याप्त समय नहीं है, तो आप अपाचे प्रक्रियाओं से बाहर निकलने वाले हैं और मैक्सक्लीयर को हिट करते हैं जो सभी को समझ में आता है।

सुपर-लोड 1-ga.test.com साइट पर आपके पास लॉग होना चाहिए, यह देखने के लिए कि अनुरोध कितने समय के लिए हो रहे हैं, उन्हें एक उम्र का होना चाहिए।

आप संभवतः ProxyPass कनेक्शन पर टाइमआउट को छोटा कर सकते हैं

http://httpd.apache.org/docs/current/mod/mod_proxy.html#workers


महान प्रतिक्रिया फिल के लिए धन्यवाद। तो आपको लगता है कि यह मुख्य httpd.conf 5 मिनट का टाइमऑउट मान रहा है और अपाचे सत्र का समय निकाल रहा है? क्योंकि मेरे पास कोई प्रॉक्सी विशिष्ट टाइमआउट सेट नहीं है जो कि डिफ़ॉल्ट होगा। प्रॉक्सी समयबाह्य सुझाव पर आपको लगता है कि मुझे ProxyTimeout चर या ProxySet कमांड का उपयोग करना चाहिए? (प्रॉक्सीसेट कनेक्शनटाइमआउट = ५ टाइमआउट = ३०)
रोचा

2

आपके प्रश्न का उत्तर देने के लिए, हाँ, प्रॉक्सी मोड में Apache2 httpd उस त्रुटि संदेश को लॉग करता है जब Apache2 httpd बार आउट हो जाता है। यदि प्रॉक्सी मोड में Apache2 httpd से जुड़ा सर्वर कारण था तो एक अलग संदेश होगा।

संदेश के कई भाग हैं: The timeout specified has expiredपाठ APR_TIMEUPत्रुटि कोड के बराबर है , देखें:

srclib / अप्रैल / विविध / यूनिक्स / errorcodes.c

case APR_TIMEUP:
    return "The timeout specified has expired";

फिर proxy: error reading status line from remote server super-load1-ga.test.comअंदर है

मॉड्यूल / प्रॉक्सी / mod_proxy_http.c

यदि आप APLOG_DEBUG के लिए अपने लॉग स्तर को क्रैंक करते हैं, तो आपको एक अतिरिक्त संदेश देखना चाहिए: proxy: read timeoutभी।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.