Apigee Edge दस्तावेज़ देखा जा रहा है.
Apigee X दस्तावेज़ पर जाएं. जानकारी
समस्या का ब्यौरा
क्लाइंट ऐप्लिकेशन को एपीआई कॉल के रिस्पॉन्स के तौर पर, गड़बड़ी कोड protocol.http.ResponseWithBody
के साथ 502 Bad Gateway
का एचटीटीपी स्टेटस कोड मिलता है.
गड़बड़ी का मैसेज
क्लाइंट ऐप्लिकेशन को यह रिस्पॉन्स कोड मिलता है:
HTTP/1.1 502 Bad Gateway
इसके अलावा, आपको इनमें से गड़बड़ी का कोई एक मैसेज भी दिख सकता है:
{ "fault":{ "faultstring":"Received 204 Response with message body", "detail":{ "errorcode":"protocol.http.ResponseWithBody" } } }
{ "fault":{ "faultstring":"Received 205 Response with message body", "detail":{ "errorcode":"protocol.http.ResponseWithBody" } } }
संभावित कारण
यह गड़बड़ी तब होती है, जब बैकएंड सर्वर से Apigee Edge को भेजा जाने वाला एचटीटीपी रिस्पॉन्स
204 No Content
या 205 Reset Content
हो, लेकिन उसमें रिस्पॉन्स का मुख्य हिस्सा और/या इनमें से एक या एक से ज़्यादा हेडर शामिल हों:
Content-Length
Content-Encoding
Transfer-Encoding
आरएफ़सी 7231, सेक्शन 6.3.5: 204 कोई कॉन्टेंट नहीं और
आरएफ़सी 7231, सेक्शन 6.3.6: 205 कॉन्टेंट रीसेट करें के निर्देशों के मुताबिक, यह उम्मीद की जाती है कि रिस्पॉन्स पेलोड के मुख्य भाग के तौर पर ऑरिजिन सर्वर से कोई और कॉन्टेंट
नहीं भेजा जाना चाहिए.204 No
Content
205 Reset Content
Content-Length
, Content-Encoding
या Transfer-Encoding
जैसे रिस्पॉन्स हेडर, रिस्पॉन्स पेलोड का साइज़, टाइप या फ़ॉर्मैट दिखाते हैं.
इसलिए, Apigee Edge, इन स्थितियों में क्लाइंट को गड़बड़ी कोड protocol.http.ResponseWithBody
के साथ 502 Bad Gateway
स्टेटस कोड दिखाता है:
बैकएंड सर्वर से मिला स्टेटस कोड | ||
---|---|---|
बैकएंड सर्वर से मिले रिस्पॉन्स में शामिल है | 204 कोई सामग्री नहीं | 205 सामग्री रीसेट करें |
जवाब का मुख्य भाग | गड़बड़ी | गड़बड़ी |
(शून्य से सेट नहीं करें) |
गड़बड़ी | गड़बड़ी |
(यह सेटिंग Apigee Edge में काम करने वाली एन्कोडिंग पर सेट है) |
गड़बड़ी | कोई गड़बड़ी नहीं |
Transfer-Encoding |
गड़बड़ी | गड़बड़ी |
इस गड़बड़ी की ये वजहें हो सकती हैं:
वजह | ब्यौरा | समस्या हल करने के लिए निर्देश |
---|---|---|
बैकएंड सर्वर से 204 रिस्पॉन्स वाले रिस्पॉन्स का मुख्य हिस्सा या हेडर | बैकएंड सर्वर, रिस्पॉन्स बॉडी और/या एक या एक से ज़्यादा हेडर Content-Type , Content-Encoding या Transfer-Encoding के साथ 204 No Content या 205 Reset Content रिस्पॉन्स भेजता है. |
Edge के सार्वजनिक और निजी क्लाउड के उपयोगकर्ता |
निदान के सामान्य चरण
इस गड़बड़ी का पता लगाने के लिए, नीचे दिए गए किसी टूल/तकनीक का इस्तेमाल करें:
एपीआई मॉनिटरिंग
एपीआई मॉनिटरिंग का इस्तेमाल करके, गड़बड़ी का पता लगाने के लिए:
- सही भूमिका वाले उपयोगकर्ता के तौर पर, Apigee Edge के यूज़र इंटरफ़ेस (यूआई) में साइन इन करें.
उस संगठन पर जाएं जिसमें आपको समस्या की जांच करनी है.
- विश्लेषण करें > एपीआई की निगरानी करना > जांच करें पेज पर जाएं.
- वह खास समयसीमा चुनें जिसमें आपने गड़बड़ियां देखी थीं.
- समय के हिसाब से गलत कोड प्लॉट करें.
वह सेल चुनें जिसमें गड़बड़ी कोड
protocol.http.ResponseWithBody
है, जैसा कि नीचे दिखाया गया है:आपको गड़बड़ी के कोड
protocol.http.ResponseWithBody
के बारे में जानकारी दिखेगी, जैसा कि यहां दिखाया गया है:लॉग देखें पर क्लिक करें और पूरे न हो पाने वाले अनुरोध की लाइन को बड़ा करें.
- लॉग विंडो से, नीचे दी गई जानकारी पर ध्यान दें:
- स्थिति कोड:
502
- गलत इस्तेमाल का सोर्स:
target
- गलत कोड:
protocol.http.ResponseWithBody
.
- स्थिति कोड:
- अगर गलत सोर्स की वैल्यू
target
है और गलत कोड की वैल्यूprotocol.http.ResponseWithBody
है, तो इसका मतलब है कि गड़बड़ी इसलिए हुई है, क्योंकि बैकएंड सर्वर ने रिस्पॉन्स बॉडी और/या संभावित वजह सेक्शन में बताए गए हेडर के साथ204 No Content
या205 Reset Content
स्टेटस कोड भेजा है.
ट्रेस टूल
ट्रेस टूल का इस्तेमाल करके गड़बड़ी का पता लगाने के लिए:
- ट्रेस सेशन को चालू करें
और इनमें से कोई एक:
502 Bad Gateway
गड़बड़ी आने तक इंतज़ार करें. या- अगर फिर से समस्या आ रही है, तो एपीआई कॉल करें और
502 Bad Gateway
गड़बड़ी फिर से देखें.
पक्का करें कि FlowInfos दिखाएं चालू है:
- सफल न होने वाले अनुरोधों में से किसी एक को चुनें और ट्रेस की जांच करें.
- ट्रेस के अलग-अलग फ़ेज़ में नेविगेट करें और पता लगाएं कि गड़बड़ी कहां हुई थी.
आम तौर पर, आपको टारगेट सर्वर को अनुरोध भेजा गया चरण के ठीक बाद,
flowinfo
गड़बड़ी में गड़बड़ी दिखेगी. इसका उदाहरण नीचे दिया गया है:स्थिति #1
स्थिति #1: बैकएंड सर्वर, स्टेटस कोड
204 No Content
के साथ जवाब देता है. इसमें रिस्पॉन्स का मुख्य हिस्सा और/या संभावित वजहों में दिए गए हेडर में से कोई एक होता है.ट्रेस में से इन वैल्यू को नोट करें:
- गड़बड़ी:
Received 204 Response with message body
- error.class:
com.apigee.rest.framework.BadGateway
स्थिति #2
स्थिति #2: बैकएंड सर्वर, स्टेटस कोड
204 No Content
के साथ रिस्पॉन्स देता है, जिसमें रिस्पॉन्स का मुख्य हिस्सा और/या संभावित वजहों में से कोई एक हेडर मौजूद होता है.ट्रेस में से इन वैल्यू को नोट करें:
- गड़बड़ी:
Received 205 Response with message body
- error.class:
com.apigee.rest.framework.BadGateway
- गड़बड़ी:
- ट्रेस में, AX (Analytics डेटा रिकॉर्ड किया गया) फ़ेज़ पर जाएं और उस पर क्लिक करें.
नीचे की ओर स्क्रोल करके, फ़ेज़ की जानकारी, गड़बड़ी वाले हेडर सेक्शन पर जाएं. इसके बाद, X-Apigee-fault-code और X-Apigee-fault-source की वैल्यू तय करें, जैसा कि यहां दिखाया गया है:
- ध्यान दें कि X-Apigee-fault-code और X-Apigee-fault-source
की वैल्यू,
are protocol.http.ResponseWithBody
औरtarget
की वैल्यू. इससे पता चलता है कि यह गड़बड़ी इसलिए हुई है, क्योंकि बैकएंड सर्वर ने रिस्पॉन्स बॉडी और/या संभावित वजहों में बताए गए किसी एक हेडर के साथ204 No Content
या205 Reset Content
स्टेटस कोड भेजा था.गड़बड़ी वैल्यू X-Apigee-fault-code protocol.http.ResponseWithBody
X-Apigee-fault-source target
NGINX
NGINX ऐक्सेस लॉग का इस्तेमाल करके, गड़बड़ी का पता लगाने के लिए:
- अगर आप प्राइवेट क्लाउड उपयोगकर्ता हैं, तो एचटीटीपी
502 Bad Gateway
के बारे में अहम जानकारी तय करने के लिए, NGINX ऐक्सेस लॉग का इस्तेमाल किया जा सकता है. NGINX ऐक्सेस लॉग देखें:
/opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log
कहां: ORG, ENV, और PORT# को असल वैल्यू से बदल दिया जाता है.
- यह देखने के लिए खोजें कि किसी खास अवधि (अगर यह समस्या पहले हुई है) के दौरान, गड़बड़ी कोड
protocol.http.ResponseWithBody
के साथ कोई502
गड़बड़ी तो नहीं है या क्या502
से जुड़े ऐसे अनुरोध हैं जो अब भी पूरे नहीं हो पा रहे हैं. अगर आपको X-Apigee-fault-code में,
protocol.http.ResponseWithBody
की वैल्यू से मेल खाने वाली कोई502
गड़बड़ी मिलती है, तो X-Apigee-fault-source की वैल्यू तय करें.NGINX ऐक्सेस लॉग से 502 गड़बड़ी का नमूना:
NGINX ऐक्सेस लॉग की ऊपर दी गई सैंपल एंट्री में X- Apigee-fault-code और X-Apigee-fault-source की वैल्यू दी गई हैं:
रिस्पॉन्स हेडर वैल्यू X-Apigee-fault-code protocol.http.ResponseWithBody
X-Apigee-fault-source target
- ध्यान दें कि X-Apigee-fault-code और X-Apigee-fault-source की वैल्यू,
protocol.http.ResponseWithBody
औरtarget
हैं. इससे पता चलता है कि यह गड़बड़ी इसलिए हुई है, क्योंकि बैकएंड सर्वर ने रिस्पॉन्स बॉडी और/या संभावित वजहों में बताए गए किसी एक हेडर के साथ204 No Content
या205 Reset Content
स्टेटस कोड भेजा था.
वजह: बैकएंड सर्वर से 204 रिस्पॉन्स वाले रिस्पॉन्स का मुख्य हिस्सा या हेडर
संक्रमण की जांच
- एपीआई मॉनिटरिंग, ट्रेस टूल या NGINX ऐक्सेस लॉग का इस्तेमाल करके मिली गड़बड़ी के लिए, गलत कोड और गलत सोर्स का पता लगाएं. डाइग्नोस्टिक के सामान्य तरीके में बताया गया है.
- अगर गलत कोड
protocol.http.ResponseWithBody
है और गलत सोर्स की वैल्यूtarget
है, तो इससे पता चलता है कि बैकएंड सर्वर ने रिस्पॉन्स बॉडी और/या संभावित वजहों में बताए गए किसी एक हेडर के साथ204 No Content
या205 Reset Content
स्टेटस कोड दिया है. यह पुष्टि करने के लिए कि क्या बैकएंड सर्वर ने वाकई रिस्पॉन्स पेलोड बॉडी और/या संभावित वजहों में बताए गए एक या एक से ज़्यादा हेडर भेजे हैं, नीचे दिया गया तरीका अपनाएं:
अगर आप सार्वजनिक क्लाउड के उपयोगकर्ता हैं और आपके पास अपने किसी भी सिस्टम से सीधे बैकएंड सर्वर से वही एपीआई अनुरोध भेजने का विकल्प है.
- अगर आप प्राइवेट क्लाउड उपयोगकर्ता हैं, तो उसी संगठन और एनवायरमेंट से जुड़े किसी मैसेज प्रोसेसर से सीधे बैकएंड सर्वर से एपीआई अनुरोध किया जा सकता है जहां गड़बड़ी मिली है.
बैकएंड सर्वर से मिले रिस्पॉन्स की समीक्षा करें और पुष्टि करें कि इसमें रिस्पॉन्स पेलोड का मुख्य हिस्सा और/या ऊपर दिए गए एक या एक से ज़्यादा हेडर शामिल हैं. अगर हां, तो इसकी वजह से गड़बड़ी हुई है.
नमूना #1
सैंपल #1: कॉन्टेंट-कोडिंग हेडर के साथ बैकएंड सर्वर रिस्पॉन्स 204
curl -v "https://BACKEND_SERVER_HOST_NAME/PATH" -H "HEADER: VALUE" -X HTTP_REQUEST_METHOD
… < HTTP/1.1 204 No Content
< Content-Encoding: gzip
< Date: Tue, 31 Jul 2021 21:41:13 GMT < Connection: keep-aliveइस सैंपल में, बैकएंड सर्वर ने
204 No Content
स्टेटस कोड औरContent-Encoding: gzip
के साथ रिस्पॉन्स दियानमूना #2
सैंपल #2: कॉन्टेंट की लंबाई वाले हेडर के साथ बैकएंड सर्वर रिस्पॉन्स 204
curl -v "https://BACKEND_SERVER_HOST_NAME/PATH" -H "HEADER: VALUE" -X HTTP_REQUEST_METHOD
… < HTTP/1.1 204 No Content
< Content-Length: 48
< Date: Tue, 31 Jul 2021 21:41:13 GMT < Connection: keep-aliveइस सैंपल में, बैकएंड सर्वर ने
204 No Content
स्टेटस कोड औरContent-Length: 48
के साथ रिस्पॉन्स दियानमूना #3
सैंपल #3: रिस्पॉन्स बॉडी के साथ बैकएंड सर्वर रिस्पॉन्स 205
curl -v "https://BACKEND_SERVER_HOST_NAME/PATH" -H "HEADER: VALUE" -X HTTP_REQUEST_METHOD
… < HTTP/1.1 205 Reset Content < Date: Sat, 31 Jul 2021 17:14:09 GMT < Content-Length: 12 < Content-Type: text/plain; charset=utf-8 < * Connection #0 to host X.X.X.X left intact
This is a sample Response
इस सैंपल में, बैकएंड सर्वर ने रिस्पॉन्स के मुख्य हिस्से
This is a sample Response.
के साथ205 Reset Content
स्टेटस कोड के साथ रिस्पॉन्स दिया- ऊपर दिए गए सभी उदाहरणों में, बैकएंड सर्वर ने रिस्पॉन्स बॉडी और/या संभावित वजहों में बताए गए किसी एक हेडर के साथ
204 No Content
या205 Reset Content
स्टेटस कोड भेजा. - इसलिए, Apigee Edge ने गड़बड़ी कोड
protocol.http.ResponseWithBody
के साथ502 Bad Gateway
स्टेटस कोड भेजा.
रिज़ॉल्यूशन
Apigee Edge को 204 No Content
या 205 Reset Content
रिस्पॉन्स भेजते समय, पक्का करें कि बैकएंड सर्वर हमेशा हमारे स्पेसिफ़िकेशन
आरएफ़सी 7231, सेक्शन 6.3.6: 205 रीसेट कॉन्टेंट के मुताबिक हो. इसका मतलब है कि बैकएंड सर्वर, 204 No Content
या 205 Reset Content
रिस्पॉन्स के तौर पर, यह जानकारी भेजना ज़रूरी नहीं है:
- रिस्पॉन्स पेलोड का मुख्य हिस्सा
- साथ ही, इनमें से कोई भी हेडर:
Content-Length
Content-Encoding
Transfer-Encoding
खास जानकारी
अगर बैकएंड सर्वर, 204 No Content
या 205 Reset Content
रिस्पॉन्स भेजता है, लेकिन आरएफ़सी के इन निर्देशों का पालन नहीं करता, तो Apigee Edge 502 Bad Gateway
स्टेटस कोड और गड़बड़ी कोड protocol.http.ResponseWithBody
के साथ जवाब देता है:
खास जानकारी |
---|
आरएफ़सी 7231, सेक्शन 6.3.5: 204 कोई कॉन्टेंट नहीं |
आरएफ़सी 7231, सेक्शन 6.3.6: 205 कॉन्टेंट रीसेट करना |
इन बातों का ध्यान रखें
इसका सुझाव दिया जाता है कि बैकएंड सर्वर को ठीक करके, रिस्पॉन्स बॉडी और किसी भी हेडर - Content-Length
, Content-Encoding
, और Transfer-Encoding
के बिना 204 No Content
और 205 Reset Content
स्टेटस कोड भेजें. साथ ही,
आरएफ़सी 7231, सेक्शन 6.3.5: 204 कोई कॉन्टेंट नहीं और
आरएफ़सी 7231, सेक्शन 6.3.6: 205 कॉन्टेंट रीसेट करें में बताए गए निर्देशों का पालन करें.
अगर आपको अब भी Apigee की सहायता टीम से मदद चाहिए, तो गड़बड़ी की जानकारी इकट्ठा करना ज़रूरी है पर जाएं.
ऐप्लिकेशन की परफ़ॉर्मेंस से जुड़ी जानकारी इकट्ठा करनी होगी
ऐप्लिकेशन की परफ़ॉर्मेंस से जुड़ी यह जानकारी इकट्ठा करें और Apigee Edge की सहायता टीम से संपर्क करें:
अगर आप Public Cloud उपयोगकर्ता हैं, तो यह जानकारी दें:
- संगठन का नाम
- परिवेश का नाम
- एपीआई प्रॉक्सी का नाम
502
गड़बड़ी को फिर से दिखाने के लिए, पूरेcurl
निर्देश का इस्तेमाल किया गया- एपीआई अनुरोधों के लिए ट्रेस फ़ाइल
अगर आप प्राइवेट क्लाउड उपयोगकर्ता हैं, तो यह जानकारी दें:
- असफल अनुरोधों के लिए देखा गया पूरा गड़बड़ी का मैसेज
- परिवेश का नाम
- एपीआई प्रॉक्सी बंडल
- एपीआई अनुरोधों के लिए ट्रेस फ़ाइल
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