500 सर्वर में गड़बड़ी - बैकएंड सर्वर

आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है इस पेज पर जाएं Apigee X दस्तावेज़.
जानकारी

वीडियो

वीडियो ब्यौरा
500 सर्वर में गड़बड़ी - बैकएंड की वजह से हुई बैकएंड सर्वर की वजह से बना रीयल-टाइम 500 Internal Server Error दिखाता है. इसमें गड़बड़ी को ठीक करने के तरीके भी बताए गए हैं.

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

क्लाइंट ऐप्लिकेशन को इस मैसेज के साथ 500 का एचटीटीपी स्टेटस कोड मिलता है एपीआई कॉल के रिस्पॉन्स के तौर पर Internal Server Error.

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

गड़बड़ी के मैसेज

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

HTTP/1.1 500 Internal Server Error

इसके अलावा, आपको गड़बड़ी का ऐसा मैसेज भी दिख सकता है जो नीचे दिए गए मैसेज से मिलता-जुलता है:

सैंपल #1

बैकएंड सर्वर का सैंपल #1

{"errorMessage":"Sorry either your e-mail or password didn't match.",
"errorParameters":"{}",
"errorCode":"500",
"errorKey":"INVALID_EMAILPASSWORD"}

सैंपल #2

बैकएंड सर्वर के जवाब का सैंपल #2

<Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <Body>
      <Error>
         <code>500</code>
         <message xml:lang="en-US">Not Authorised(e4138fa0-ec57).</message>
      </Error>
   </Body>
</Envelope>

संभावित कारण

बैकएंड सर्वर से 500 Internal Server Error को वापस भेजा जा सकता है, क्योंकि समस्याओं की वजह क्या है. इस प्लेबुक में सामान्य चरणों का इस्तेमाल करके, समस्या को हल करने और उसे हल करने का तरीका बताया गया है में गड़बड़ी होती है.

इस समस्या की ये वजहें हो सकती हैं:

वजह ब्यौरा इसके लिए लागू होने वाले, समस्या हल करने के निर्देश
बैकएंड सर्वर में गड़बड़ी बैकएंड सर्वर किसी वजह से शायद काम न करे. Edge के निजी और सार्वजनिक क्लाउड के उपयोगकर्ता

गड़बड़ी की जांच करने के सामान्य तरीके

इस गड़बड़ी का पता लगाने के लिए, इनमें से किसी एक टूल/तकनीक का इस्तेमाल करें:

एपीआई मॉनिटरिंग

प्रोसेस #1: एपीआई मॉनिटरिंग का इस्तेमाल करना

एपीआई मॉनिटरिंग का इस्तेमाल करके, गड़बड़ी का पता लगाने के लिए:

  1. वाले उपयोगकर्ता के तौर पर, Apigee Edge के यूज़र इंटरफ़ेस (यूआई) में साइन इन करें भूमिका होनी चाहिए.
  2. उस संगठन पर जाएं जिसमें आपको समस्या की जांच करनी है.

  3. विश्लेषण > एपीआई मॉनिटरिंग > पेज की जांच करें.
  4. वह समयावधि चुनें जिसमें आपको गड़बड़ियां दिखी थीं.
  5. समय के हिसाब से गड़बड़ी कोड दिखाएं.

  6. वह सेल चुनें जिसमें गड़बड़ी का कोड है messaging.adaptors.http.flow.ErrorResponseCode जैसा दिखाया गया नीचे दिया गया है:

    ( बड़ी इमेज देखें)

  7. गड़बड़ी के कोड के बारे में जानकारी messaging.adaptors.http.flow.ErrorResponseCode को इस तौर पर दिखाया गया है नीचे दिखाया गया है:

    ( बड़ी इमेज देखें)

  8. लॉग देखें पर क्लिक करें और फ़ेल हो चुके अनुरोध की पंक्ति को बड़ा करें.

    ( बड़ी इमेज देखें)

  9. लॉग विंडो में जाकर, यह जानकारी देखें:
    • मैसेज आईडी का अनुरोध करें
    • स्टेटस कोड: 500
    • गलत सोर्स: target
    • गलत कोड: messaging.adaptors.http.flow.ErrorResponseCode

ट्रेस

प्रोसेस #2: ट्रेस टूल का इस्तेमाल करना

ट्रेस टूल का इस्तेमाल करके गड़बड़ी का पता लगाने के लिए:

  1. ट्रेस सेशन को चालू करें और
    • गड़बड़ी के कोड वाली 500 Internal Server Error गड़बड़ी का इंतज़ार करें messaging.adaptors.http.flow.ErrorResponseCode या
    • अगर आपको समस्या के बारे में अच्छे से पता है, तो समस्या के बारे में बताने के लिए एपीआई कॉल करें 500 Internal Server Error अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
  2. पक्का करें कि सभी FlowInfos दिखाएं चालू है:

  3. पूरे न हो पाने वाले अनुरोधों में से किसी एक को चुनें और ट्रेस की जांच करें.
  4. ट्रेस के अलग-अलग फ़ेज़ पर जाएं और देखें कि गड़बड़ी कहां हुई.
  5. आपको गड़बड़ी आम तौर पर टारगेट सर्वर से जवाब मिलने के बाद फ़्लो में दिखेगी चरण नीचे बताए गए हैं:

    ( बड़ी इमेज देखें)

  6. ट्रेस में AX (Analytics डेटा रिकॉर्ड किया गया) चरण पर जाएं और उस पर क्लिक करें.
  7. नीचे की ओर स्क्रोल करके, चरण से जुड़ी जानकारी के रिस्पॉन्स हेडर सेक्शन पर जाएं और तय करें कि X-Apigee-fault-code और X-Apigee-fault-source की वैल्यू, और X-Apigee-Message-ID, जैसा कि नीचे दिखाया गया है:

    ( बड़ी इमेज देखें)

  8. X-Apigee-fault-code, X-Apigee-fault-source की वैल्यू नोट करें, और X-Apigee-Message-ID:
  9. रिस्पॉन्स हेडर मान
    X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode
    X-Apigee-fault-source target
    X-Apigee-Message-ID MESSAGE_ID

NGINX

प्रक्रिया #3: NGINX ऐक्सेस लॉग का इस्तेमाल करना

NGINX ऐक्सेस लॉग का इस्तेमाल करके गड़बड़ी का पता लगाने के लिए:

  1. अगर आप निजी Cloud उपयोगकर्ता हैं, तो यह पता करने के लिए कि NGINX ऐक्सेस लॉग का इस्तेमाल किया जा सकता है या नहीं एचटीटीपी 500 Internal Server Error के बारे में अहम जानकारी.
  2. NGINX ऐक्सेस लॉग देखें:

    /opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log

  3. यह देखने के लिए खोजें कि क्या गड़बड़ी कोड में कोई 500 गड़बड़ी है किसी खास अवधि के दौरान messaging.adaptors.http.flow.ErrorResponseCode (अगर समस्या पुराना) या अगर कोई अनुरोध अब भी 500 के साथ पूरा नहीं हो पा रहा है.
  4. अगर आपको मेल खाने वाले X-Apigee-fault-code की 500 गड़बड़ी मिलती है मान messaging.adaptors.http.flow.ErrorResponseCode, फिर X-Apigee-fault-source. की वैल्यू तय करें.

    NGINX ऐक्सेस लॉग में 500 गड़बड़ी का नमूना:

    ( बड़ी इमेज देखें)

    NGINX ऐक्सेस लॉग की ऊपर दी गई सैंपल एंट्री में, X-Apigee-fault-code और X-Apigee-fault-source:

    हेडर मान
    X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode
    X-Apigee-fault-source target

वजह: बैकएंड सर्वर में गड़बड़ी

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

बैकएंड सर्वर से रिस्पॉन्स दिया गया 500 Internal Server Error कई वजहों से ऐसा होता है. आपको हर स्थिति का अलग से विश्लेषण करना होगा.

  1. एपीआई मॉनिटरिंग का इस्तेमाल करके मिली गड़बड़ी के लिए, गलत कोड, गड़बड़ी का सोर्स पता करें. ट्रेस टूल या NGINX ऐक्सेस लॉग के बारे में जानकारी, जैसा कि गड़बड़ी की जानकारी देने के सामान्य चरणों में बताया गया है.
  2. अगर गलत सोर्स target है और गलत कोड है messaging.adaptors.http.flow.ErrorResponseCode है, तो इससे पता चलता है कि बैकएंड सर्वर से गड़बड़ी मिलती है.
  3. नीचे दिए गए तरीकों में से किसी एक को अपनाकर, समस्या की वजह का पता लगाया जा सकता है:

    ट्रेस

    ट्रेस का इस्तेमाल करना:

    अगर आपके पास गड़बड़ी के लिए एक ट्रेस सत्र है, तो नीचे दिया गया तरीका अपनाएं:

    1. ट्रेस में जाकर, उस एपीआई अनुरोध को चुनें जो पूरा नहीं हो सका 500 Internal Server Error.
    2. टारगेट सर्वर से मिला जवाब चरण चुनें. एपीआई अनुरोध पूरा न होने की जानकारी, जैसा कि नीचे दी गई इमेज में दिखाया गया है:

      ( बड़ी इमेज देखें)

    3. नीचे चरण की जानकारी सेक्शन तक स्क्रोल करें और रिस्पॉन्स कॉन्टेंट,जिसमें बैकएंड सर्वर से मिलने वाला रिस्पॉन्स शामिल होता है.

      जवाब के कॉन्टेंट का सैंपल:

      <Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
         <Body>
            <Error>
               <code>500</code>
               <message xml:lang="en-US">Not Authorised(e4138fa0-ec57).</message>
            </Error>
         </Body>
      </Envelope>
      

      ऊपर दिए गए जवाब में, ध्यान दें कि बैकएंड सर्वर से आने वाला गड़बड़ी का मैसेज अनुमति नहीं है. इससे पता चलता है कि उपयोगकर्ता ने शायद अमान्य कोड को पास किया है क्रेडेंशियल से साइन इन नहीं करते हैं और इसलिए उन्हें यह गड़बड़ी मिल रही है.

    कॉल बैकएंड सर्वर

    बैकएंड सर्वर को सीधे तौर पर कॉल करना:

    बैकएंड सर्वर पर सीधे कॉल किया जा सकता है और:

    • पुष्टि करें कि आपको वही 500 Internal Server Error मिल रहे हैं या नहीं Apigee Edge से अनुरोध करने पर मिला रिस्पॉन्स
    • बैकएंड सर्वर से मिला गड़बड़ी का मैसेज (रिस्पॉन्स) देखें

    बैकएंड सर्वर पर सीधे कॉल करने के लिए, यह तरीका अपनाएं:

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

    4. पुष्टि करें कि क्या बैकएंड सेवा वाकई 500 Internal Server Error लौटा रही है और बैकएंड सर्वर से मिले गड़बड़ी के मैसेज (रिस्पॉन्स) की जांच करें और इस गड़बड़ी की वजह का पता लगाएं.

    बैकएंड सर्वर लॉग

    बैकएंड सर्वर लॉग का इस्तेमाल करना

    1. बैकएंड सर्वर लॉग की समीक्षा करें. साथ ही, गड़बड़ी के बारे में ज़्यादा जानकारी पाने की कोशिश करें और मदद नहीं कर पाएगा.
    2. अगर हो सके, तो ज़्यादा जानकारी के लिए बैकएंड सर्वर पर डीबग मोड चालू करें पर ध्यान दें.
  4. यह देखने के लिए जांचें कि क्या आप काम न करने वाले एपीआई प्रॉक्सी के खास टारगेट एंडपॉइंट में प्रॉक्सी चेन; इसका मतलब है कि अगर टारगेट सर्वर/टारगेट एंडपॉइंट Apigee Edge. इसे तय करने के लिए:

    1. अगर आपके पास पूरे न हो पाने वाले अनुरोध का पता मौजूद है, तो अनुरोध भेजा गया सर्वर फ़ेज़ को टारगेट करने के लिए और कर्ल दिखाएं पर क्लिक करें.

    2. टारगेट सर्वर को भेजे गए अनुरोध का कर विंडो खुलती है जहां से आप टारगेट सर्वर होस्ट का उपनाम तय कर सकता है.
    3. अपने एपीआई प्रॉक्सी के टारगेट एंडपॉइंट की समीक्षा करें और देखें कि बैकएंड सर्वर टारगेट सर्वर में मौजूद यूआरएल या होस्ट का नाम, किसी दूसरे प्रॉक्सी सर्वर या आपके प्रॉक्सी सर्वर की तरफ़ इशारा करता है बैकएंड सर्वर.
    4. अगर टारगेट सर्वर होस्ट का उपनाम किसी वर्चुअल होस्ट के उपनाम को पॉइंट करता है, तो प्रॉक्सी चेनिंग है. ऐसी स्थिति में, आपको जब तक आप यह पता नहीं लगा लेते कि 500 Internal Server Error की असल वजह क्या है, तब तक एक-दूसरे से जुड़े प्रॉक्सी सर्वर रखें. इन मामलों में 500 Internal Server Error हो सकता है अन्य स्टेज पर एक-दूसरे से जुड़ी प्रॉक्सी में भी होते हैं, जिनका पता लगाया जा सकता है और इस प्लेबुक में या 500 सर्वर में गड़बड़ी की जानकारी वाली प्लेबुक.
    5. अगर टारगेट सर्वर होस्ट का उपनाम आपके बैकएंड सर्वर पर ले जाता है, तो रिज़ॉल्यूशन.

रिज़ॉल्यूशन

अगर यह पता चलता है कि 500 गड़बड़ी बैकएंड सर्वर से आ रही है, तो अपनी बैकएंड सर्वर टीम के साथ मिलकर काम करें, ताकि समस्या को सही तरीके से ठीक किया जा सके.

ऊपर बताए गए उदाहरण में, समस्या को ठीक करने के लिए, आपको उपयोगकर्ताओं से मान्य क्रेडेंशियल पास करने का अनुरोध करना पड़ सकता है इस समस्या को हल करने में मदद मिलेगी.

इन बातों का ध्यान रखें

  1. बैकएंड सर्वर से 500 Internal Server Error के लिए मिला, गड़बड़ी का असल मैसेज सिर्फ़ तब देखा जा सकता है, जब ऐसा न होने के लिए, ट्रेस सेशन को कैप्चर किया गया हो अनुरोध.
  2. बैकएंड सर्वर रिस्पॉन्स, एपीआई मॉनिटरिंग, NGINX ऐक्सेस लॉग या सुरक्षा वजहों से मैसेज प्रोसेसर लॉग.
  3. ज़्यादा जानकारी के लिए, बैकएंड सर्वर लॉग की समीक्षा करें या बैकएंड पर डीबग मोड को चालू करें 500 Internal Server Error की जानकारी दें और/या गड़बड़ी का मैसेज देखें भी डाउनलोड कर सकता है.

ऐप्लिकेशन की परफ़ॉर्मेंस से जुड़ी जानकारी इकट्ठा करना ज़रूरी है

अगर ऊपर दिए गए निर्देशों का पालन करने के बाद भी समस्या बनी रहती है, तो यह जानकारी इकट्ठा करें और Apigee Edge की सहायता टीम से संपर्क करें.

अगर आप सार्वजनिक क्लाउड के उपयोगकर्ता हैं, तो यह जानकारी दें:

  • संगठन का नाम
  • परिवेश का नाम
  • एपीआई प्रॉक्सी का नाम
  • 500 गड़बड़ी को ठीक करने के लिए, curl निर्देश को पूरा करें
  • 500 Internal Server Error वाले अनुरोधों वाली फ़ाइल ट्रेस करें
  • अगर 500 गड़बड़ियां अभी नहीं हो रही हैं, तो समय बताएं समयावधि में उस टाइमज़ोन की जानकारी दें जिसमें पहले 500 गड़बड़ियां हुई थीं.

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

  • पूरे न हो पाने वाले अनुरोधों की वजह से, गड़बड़ी का पूरा मैसेज मिला
  • उस संगठन, एनवायरमेंट का नाम, और उस एपीआई प्रॉक्सी का नाम जिसकी आपको जांच करनी है 500 गड़बड़ियां
  • एपीआई प्रॉक्सी बंडल
  • 500 Internal Server Error वाले अनुरोधों वाली फ़ाइल ट्रेस करें
  • NGINX ऐक्सेस लॉग /opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log

    कहां: ORG, ENV, और PORT# को वास्तविक मानों से बदल दिया जाता है.

  • मैसेज प्रोसेसर के सिस्टम लॉग /opt/apigee/var/log/edge-message-processor/logs/system.log अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
  • 500 गड़बड़ियां होने पर, टाइमज़ोन की जानकारी वाली समयावधि.