बैकएंड सर्वर से 504 गेटवे टाइम आउट

Apigee Edge दस्तावेज़ देखा जा रहा है.
Apigee X दस्तावेज़ पर जाएं.
जानकारी

समस्या का ब्यौरा

क्लाइंट ऐप्लिकेशन को एपीआई कॉल के जवाब में, "गेटवे टाइम आउट" मैसेज के साथ 504 का एचटीटीपी स्टेटस कोड मिलता है.

गड़बड़ी के इस जवाब से पता चलता है कि एपीआई कॉल के लागू होने के दौरान, क्लाइंट को Apigee Edge या बैकएंड सर्वर से समय पर जवाब नहीं मिला.

गड़बड़ी संदेश

क्लाइंट ऐप्लिकेशन को यह रिस्पॉन्स कोड मिलता है:

HTTP/1.1 504 Gateway Timeout

इस कोड के बाद आने वाला गड़बड़ी का मैसेज हो सकता है. यह मैसेज नीचे दिया गया है:

<html>
<head><title>504 Gateway Timeout</title></head>
<body bgcolor="white">
<center><h1>504 Gateway Timeout</h1></center>
</body>
</html>

गेटवे टाइम आउट की वजह क्या है?

Apigee Edge से किए गए एपीआई अनुरोध के लिए, आम तौर पर क्लाइंट -> राऊटर -> मैसेज प्रोसेसर -> बैकएंड सर्वर होता है, जैसा कि नीचे दी गई इमेज में दिखाया गया है:

एपीआई अनुरोध का पाथ

क्लाइंट ऐप्लिकेशन, राऊटर, और मैसेज प्रोसेसर को सही टाइम आउट वैल्यू के साथ कॉन्फ़िगर किया गया है. Apigee Edge, समयसीमा खत्म होने की वैल्यू के आधार पर एक समयावधि में हर एपीआई अनुरोध का जवाब देता है. अगर तय समयावधि में जवाब नहीं मिलता है, तो 504 गेटवे टाइम आउट का रिस्पॉन्स मिलता है.

संभावित वजहें

Apigee Edge में, बैकएंड सर्वर से मिलने वाले 504 गेटवे टाइम आउट रिस्पॉन्स की सामान्य वजह यह है:

Cause Description इन विज्ञापनों के लिए समस्या हल करने के निर्देश
बैकएंड सर्वर, 504 गेटवे टाइम आउट के साथ जवाब दे रहा है बैकएंड सर्वर टाइम आउट हो जाता है और मैसेज प्रोसेसर को 504 गेटवे टाइम आउट रिस्पॉन्स देता है. Edge के निजी और सार्वजनिक क्लाउड उपयोगकर्ता

बैकएंड सर्वर, 504 गेटवे टाइम आउट के साथ जवाब दे रहा है

बैकएंड सर्वर, 504 गेटवे टाइम आउट वाले एचटीटीपी रिस्पॉन्स कोड के साथ जवाब दे सकता है.

संक्रमण की जांच

यह सेक्शन बताता है कि 504 गेटवे टाइम आउट का सही तरीके से कैसे पता लगाएं. निजी और सार्वजनिक क्लाउड, दोनों तरह के उपयोगकर्ताओं के लिए प्रक्रियाओं की सूची दी गई है.

प्रक्रिया #1: ट्रेस का इस्तेमाल करना (निजी और सार्वजनिक क्लाउड उपयोगकर्ता)

  1. जिस एपीआई पर असर हुआ है उसके लिए, Apigee यूज़र इंटरफ़ेस (यूआई) में ट्रेस करने की सुविधा चालू करें.
  2. बैकएंड सर्वर पर अनुरोध भेजें.
  3. अगर काम न होने वाला एपीआई अनुरोध, ट्रेस में बैकएंड सर्वर से 504 रिस्पॉन्स दिखाता है, तो बैकएंड सर्वर 504 गेटवे टाइम आउट की वजह होगा.
  4. रिस्पॉन्स का समय तय करने के लिए, ट्रेस में टारगेट सर्वर से मिला जवाब चरण पर क्लिक करें. दिखाए गए उदाहरण में, बीता हुआ समय 60004 ms है:

    यूज़र इंटरफ़ेस (यूआई) से मिले फ़ेज़ की जानकारी

    चरण की जानकारी वाले सेक्शन में ज़्यादा जानकारी मिलती है:

    • यह बैकएंड सर्वर से मिलने वाले 504 गेटवे टाइम आउट के जवाब को हाइलाइट करता है.
    • रिस्पॉन्स कॉन्टेंट सेक्शन में, बैकएंड सर्वर से मिलने वाले रिस्पॉन्स का पूरा हिस्सा दिखता है. जैसा कि पहले बताया गया है, बैकएंड सर्वर को लागू करने के आधार पर, रिस्पॉन्स पेलोड का फ़ॉर्मैट और कॉन्टेंट अलग-अलग हो सकता है.
    • रिस्पॉन्स हेडर > सर्वर सेक्शन से यह पता चल सकता है कि रिस्पॉन्स कहां से शुरू हुआ था.
  5. Analytics डेटा देखने और विश्लेषण की पुष्टि करने के लिए, ट्रेस में Analytics के रिकॉर्ड किए गए डेटा फ़ेज़ पर क्लिक करें, जैसा कि नीचे दिए गए चित्र में दिखाया गया है:

    ट्रेस से मिले आंकड़ों की जानकारी

    चरण की जानकारी का रिस्पॉन्स हेडर सेक्शन, X-Apigee-fault-code और X-Apigee-fault-source की वैल्यू दिखाता है, जैसा कि नीचे दिए गए डायग्राम में दिखाया गया है:

    यूज़र इंटरफ़ेस (यूआई) से मिले आंकड़ों के फ़ेज़ की जानकारी

    अगर इन फ़ील्ड में नीचे दी गई टेबल में दिखाई गई वैल्यू शामिल हैं, तो 504 गड़बड़ी वाला रिस्पॉन्स, बैकएंड सर्वर से मिलता है:

    रिस्पॉन्स हेडर वैल्यू
    X-Apigee-fault-source टारगेट
    X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode
  6. प्रॉक्सी चेन देखें. यहां दिया गया तरीका अपनाकर पता लगाएं कि बैकएंड सर्वर, Apigee में कोई दूसरा प्रॉक्सी शुरू कर रहा है या नहीं:
    1. टारगेट सर्वर को भेजा गया अनुरोध फ़ेज़ पर वापस जाएं. इसके बाद, बैकएंड सर्वर होस्ट का उपनाम देखने के लिए, कर्ल दिखाएं बटन पर क्लिक करें.
    2. अगर बैकएंड सर्वर होस्ट का उपनाम किसी वर्चुअल होस्ट उपनाम पर ले जाता है, तो इसका मतलब है कि प्रॉक्सी चेन मौजूद है. 504 गेटवे टाइम आउट की गड़बड़ी के जवाब की वजह का पता लगाने के लिए, हर चेन प्रॉक्सी के लिए ऊपर दिया गया तरीका दोहराएं. अनुरोध/जवाब देने की प्रक्रिया के दूसरे चरणों में एक-दूसरे से जुड़ी प्रॉक्सी में होने वाले 504 गेटवे टाइम आउट का पता लगाने के लिए, इस प्लेबुक का इस्तेमाल किया जा सकता है.
    3. अगर बैकएंड सर्वर होस्ट का उपनाम बैकएंड सर्वर पर ले जाता है, तो रिज़ॉल्यूशन पर जाएं.

प्रोसेस #2: सीधे बैकएंड सर्वर एपीआई शुरू करें (सार्वजनिक और निजी क्लाउड उपयोगकर्ता)

सीधे बैकएंड सर्वर पर कॉल करें, ताकि Apigee Edge के ज़रिए अनुरोध करते समय, गेटवे टाइम आउट रिस्पॉन्स में मिलने वाले 504 कोड की ही पुष्टि की जा सके.

  1. पक्का करें कि आपके पास अनुरोध के तहत बैकएंड सर्वर को भेजने के लिए, सभी ज़रूरी हेडर, क्वेरी पैरामीटर, और क्रेडेंशियल हों.
  2. अगर बैकएंड सेवा सार्वजनिक तौर पर ऐक्सेस की जा सकती है, तो curl कमांड, पोस्टमैन या किसी अन्य REST क्लाइंट का इस्तेमाल करके, सीधे बैकएंड सर्वर एपीआई को शुरू किया जा सकता है.
  3. अगर बैकएंड सर्वर को सिर्फ़ मैसेज प्रोसेसर से ऐक्सेस किया जा सकता है, तो सीधे मैसेज प्रोसेसर से बैकएंड सर्वर एपीआई को शुरू करने के लिए, curl कमांड, पोस्टमैन या किसी अन्य REST क्लाइंट का इस्तेमाल करें.
  4. अगर बैकएंड सेवा, 504 गेटवे टाइम आउट का जवाब देती है, तो रिज़ॉल्यूशन पर जाएं.

प्रक्रिया #3: NGINX ऐक्सेस लॉग (सिर्फ़ प्राइवेट क्लाउड उपयोगकर्ता) की जांच करें

NGINX ऐक्सेस लॉग यह तय करने में मदद कर सकते हैं कि 504 गड़बड़ी का रिस्पॉन्स, बैकएंड सर्वर से भेजा गया था या नहीं. यह सुविधा खास तौर पर तब मददगार होती है, जब यह समस्या पहले हुई हो, बीच-बीच में हो या ट्रेस में न देखी जा सके. NGINX के ऐक्सेस लॉग की जांच करने के लिए, यह तरीका अपनाएं:

  1. इस निर्देश का इस्तेमाल करके, NGINX ऐक्सेस लॉग देखें:
    /opt/apigee/var/log/edge-router/nginx/ ORG ~ENV.PORT# _access_log 
  2. जिस एपीआई प्रॉक्सी पर असर हुआ है उसके लिए 504 गड़बड़ी वाले रिस्पॉन्स देखें. अगर समस्या पहले ही हुई थी, तो किसी खास समयावधि की जानकारी देखी जा सकती है. इसके अलावा, यह भी पता किया जा सकता है कि 504 की गड़बड़ी वाले रिस्पॉन्स के साथ अनुरोध अब भी पूरे नहीं हो पा रहे हैं या नहीं.
  3. अगर कोई 504 गड़बड़ी वाला रिस्पॉन्स दिखता है, तो तय करें कि गड़बड़ी का रिस्पॉन्स, बैकएंड सर्वर से शुरू होता है या नहीं.
  4. नीचे दी गई इमेज में NGINX लॉग एंट्री का उदाहरण दिया गया है. इसमें टारगेट सर्वर की वजह से हुई 504 गड़बड़ी का रिस्पॉन्स दिखाया गया है:

    nginx लॉग का सैंपल

    अगर X-Apigee-fault-source और X-Apigee-fault-code फ़ील्ड में नीचे दी गई टेबल में दिखाई गई वैल्यू मौजूद हैं, तो 504 रिस्पॉन्स, बैकएंड सर्वर से शुरू होता है:

    रिस्पॉन्स हेडर वैल्यू
    X-Apigee-fault-source टारगेट
    X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode
  5. प्रॉक्सी की चेन की जांच करने के लिए, उस एपीआई प्रॉक्सी की समीक्षा करें जिस पर असर पड़ा है. इसका मतलब है कि बैकएंड सर्वर/टारगेट एंडपॉइंट, Apigee में दूसरी प्रॉक्सी शुरू कर रहा है. अगर एपीआई प्रॉक्सी, प्रॉक्सी की चेन का इस्तेमाल कर रहा है, तो 504 गेटवे टाइम आउट की गड़बड़ी की वजह का पता लगाने के लिए, हर चेन प्रॉक्सी के लिए ऊपर दिए गए तरीके को दोहराएं. 504 किसी अन्य स्टेज पर एक-दूसरे से जुड़ी प्रॉक्सी में होने वाले गेटवे टाइम आउट की समस्या का इस प्लेबुक का इस्तेमाल करके पता लगाया जा सकता है.
  6. अगर कोई प्रॉक्सी चेन नहीं है और 504 गड़बड़ी वाला रिस्पॉन्स, बैकएंड सर्वर से शुरू होता है, तो रिज़ॉल्यूशन पर जाएं.

प्रक्रिया #4: एपीआई मॉनिटरिंग (सिर्फ़ सार्वजनिक क्लाउड का इस्तेमाल करने वाले लोगों के लिए) का इस्तेमाल करना

एपीआई मॉनिटरिंग की मदद से, समस्या वाले क्षेत्रों को तुरंत अलग-अलग करके, गड़बड़ी, परफ़ॉर्मेंस, और इंतज़ार के समय से जुड़ी समस्याओं और उनके सोर्स, जैसे कि डेवलपर ऐप्लिकेशन, एपीआई प्रॉक्सी, बैकएंड टारगेट या एपीआई प्लैटफ़ॉर्म का पता लगाया जा सकता है.

उदाहरण के तौर पर दिए गए उदाहरण को देखें इसमें, एपीआई मॉनिटरिंग का इस्तेमाल करके, अपने एपीआई की 5xx समस्याओं को हल करने का तरीका बताया गया है. उदाहरण के लिए, जब 504 स्टेटस कोड की संख्या एक तय सीमा से ज़्यादा हो जाएगी, तब एडमिन को सूचना देने के लिए एक अलर्ट सेट अप करें.

पर सेट करें

रिज़ॉल्यूशन

ऊपर बताई गई डाइग्नोस्टिक प्रोसेस का इस्तेमाल करके, बैकएंड सर्वर की समस्या को ठीक करने के लिए बैकएंड सर्वर टीम के साथ काम किया जा सकता है. इसमें बैकएंड सर्वर में टाइम आउट अपडेट करना या टारगेट सर्वर के पहले लोड बैलेंसर में टाइम आउट सेट करना शामिल हो सकता है.

गड़बड़ी की जानकारी इकट्ठा करें

अगर समस्या बनी रहती है, तो Apigee सहायता के साथ नीचे दी गई गड़बड़ी की जानकारी शेयर करें.

अगर आप Public Cloud के उपयोगकर्ता हैं, तो यह जानकारी दें:

  • संगठन का नाम
  • एनवायरमेंट का नाम
  • एपीआई प्रॉक्सी का नाम
  • 504 वाली गड़बड़ी के रिस्पॉन्स को फिर से दिखाने के लिए, पूरा curl कमांड इस्तेमाल किया गया
  • एपीआई अनुरोधों वाली ट्रेस फ़ाइल को 504 गेटवे टाइम आउट की गड़बड़ी का जवाब मिला

अगर आप Private Cloud के उपयोगकर्ता हैं, तो यह जानकारी दें:

  • असफल अनुरोधों के लिए देखा गया पूरा गड़बड़ी का मैसेज
  • एनवायरमेंट का नाम
  • एपीआई प्रॉक्सी बंडल
  • एपीआई अनुरोधों वाली ट्रेस फ़ाइल को 504 गेटवे टाइमआउट की गड़बड़ी का मैसेज मिलने पर
  • NGINX के ऐक्सेस लॉग
    /opt/apigee/var/log/edge-router/nginx/ ORG ~ENV.PORT# _access_log 
  • मैसेज प्रोसेसर के लॉग
    /opt/apigee/var/log/edge-message-processor/logs/system.log