आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
इस पेज पर जाएं
Apigee X दस्तावेज़. जानकारी
समस्या का ब्यौरा
क्लाइंट ऐप्लिकेशन को इस मैसेज के साथ 404
का एचटीटीपी स्टेटस कोड मिलता है
Not Found
और गड़बड़ी का मैसेज
Unable to identify proxy for host: VIRTUAL_HOST and url: PATH
एपीआई कॉल के रिस्पॉन्स के तौर पर.
इस गड़बड़ी का मतलब है कि Edge को बताए गए वर्चुअल होस्ट और पाथ के लिए एपीआई प्रॉक्सी नहीं मिला.
गड़बड़ी संदेश
आपको यह एचटीटीपी स्टेटस कोड मिलेगा:
HTTP/1.1 404 Not Found
आपको गड़बड़ी का एक मैसेज भी दिखेगा, जो नीचे दिखाए गए मैसेज जैसा ही होगा:
{ "fault":{ "faultstring":"Unable to identify proxy for host: default and url: \/oauth2\/token", "detail":{ "errorcode":"messaging.adaptors.http.flow.ApplicationNotFound" } } }
ऊपर दिए गए गड़बड़ी के मैसेज से पता चलता है कि Edge को
default
वर्चुअल होस्ट और /oauth2/token
पाथ.
संभावित वजहें
इस गड़बड़ी की कुछ संभावित वजहें नीचे बताई गई हैं:
वजह | ब्यौरा | इसके लिए लागू होने वाले, समस्या हल करने के निर्देश |
---|---|---|
एपीआई प्रॉक्सी किसी खास वर्चुअल होस्ट से जुड़ा हुआ नहीं है | किसी खास एपीआई प्रॉक्सी को वर्चुअल होस्ट पर अनुरोध स्वीकार करने के लिए कॉन्फ़िगर नहीं किया गया है गड़बड़ी के मैसेज में बताया गया है. | Edge के सार्वजनिक और प्राइवेट क्लाउड उपयोगकर्ता |
एपीआई प्रॉक्सी के नए डिप्लॉय किए गए वर्शन से वर्चुअल होस्ट को हटाया गया | क्लाइंट के स्थिर रहने के दौरान, नए डिप्लॉय किए गए बदलाव से वर्चुअल होस्ट को हटाना विशिष्ट वर्चुअल होस्ट का उपयोग करने से यह समस्या हो सकती है. | Edge के सार्वजनिक और प्राइवेट क्लाउड उपयोगकर्ता |
पाथ किसी एपीआई प्रॉक्सी से जुड़ा नहीं है | खास एपीआई प्रॉक्सी को बताए गए पाथ पर अनुरोध स्वीकार करने के लिए कॉन्फ़िगर नहीं किया गया है पर नहीं मिलेगा. | Edge के सार्वजनिक और प्राइवेट क्लाउड उपयोगकर्ता |
किसी एनवायरमेंट में एपीआई प्रॉक्सी को डिप्लॉय नहीं किया गया है | किसी खास एपीआई प्रॉक्सी को उस खास एनवायरमेंट में डिप्लॉय नहीं किया जाता है जिसमें आप हैं एपीआई अनुरोध भेजने की कोशिश की जा रही है. | Edge के सार्वजनिक और प्राइवेट क्लाउड उपयोगकर्ता |
मैसेज प्रोसेसर पर एनवायरमेंट लोड नहीं हुआ | जिस खास एनवायरमेंट में एपीआई अनुरोध करने की कोशिश की जा रही है उसमें को किसी गड़बड़ी की वजह से मैसेज प्रोसेसर पर लोड कर दिया गया है. | Edge के प्राइवेट क्लाउड के उपयोगकर्ता |
एक या उससे ज़्यादा मैसेज प्रोसेसर पर एपीआई प्रॉक्सी डिप्लॉय नहीं किया गया है | गुम होने की वजह से एपीआई प्रॉक्सी एक या उससे ज़्यादा मैसेज प्रोसेसर पर डिप्लॉय नहीं किया जा सकता डिप्लॉयमेंट के दौरान इवेंट की सूचना पाने की सुविधा मिलती है. | Edge के प्राइवेट क्लाउड के उपयोगकर्ता |
गड़बड़ी की जांच करने के सामान्य तरीके
404
की गड़बड़ी को ठीक करने में, NGINX और मैसेज प्रोसेसर के लॉग से मदद मिलेगी.
लॉग देखने के लिए, यहां दिया गया तरीका अपनाएं:
- नीचे दिए गए निर्देश का इस्तेमाल करके NGINX लॉग देखें:
/opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है - लॉग एंट्री में इन फ़ील्ड की जांच करें:
फ़ील्ड मान Upstream_status, status
404
X-Apigee-fault-code
messaging.adaptors.http.flow.ApplicationNotFound
लॉग में मौजूद मैसेज आईडी को नोट कर लें.
- मैसेज प्रोसेसर के लॉग देखना
(
/opt/apigee/var/log/edge-message-processor/logs/system.log)
देखें कि क्या किसी एपीआई के लिएmessaging.adaptors.http.flow.ApplicationNotFound
का इस्तेमाल करें या अगर आपके पास एपीआई अनुरोध के लिए, दूसरे चरण में भेजा गया मैसेज आईडी.मैसेज प्रोसेसर लॉग से, गड़बड़ी के मैसेज का सैंपल
NIOThread@1 ERROR ADAPTORS.HTTP.FLOW - AbstractRequestListener.onException() : Request:POST, uri:/weather, message Id:null, exception:com.apigee.rest.framework.ResourceNotFoundException{ code = messaging.adaptors.http.flow.ApplicationNotFound, message = Unable to identify proxy for host: vh1 and url: /weather, associated contexts = []}, context:Context@342ea86b input=ClientInputChannel(SSLClientChannel[Accepted: Remote:10.123.123.123:8443 Local:10.135.33.68:62092]@1206954 useCount=1 bytesRead=0 bytesWritten=0 age=1ms lastIO=0ms isOpen=true)
ऊपर दिए गए लॉग में गड़बड़ी का कोड दिखता है और गड़बड़ी का मैसेज इस तरह का है:
code = messaging.adaptors.http.flow.ApplicationNotFound, message = Unable to identify proxy for host: vh1 and url: /weatherअभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
वजह: एपीआई प्रॉक्सी किसी खास वर्चुअल होस्ट से जुड़ा हुआ नहीं है
अगर एपीआई प्रॉक्सी को किसी खास वर्चुअल होस्ट के अनुरोध स्वीकार करने के लिए कॉन्फ़िगर न किया गया हो, तो
हमें गड़बड़ी के मैसेज के साथ 404 Not Found
जवाब मिल सकता है
Unable to identify proxy for host: VIRTUAL_HOST and url: PATH.
संक्रमण की जांच
- एपीआई प्रॉक्सी के लिए प्रॉक्सी एंडपॉइंट कॉन्फ़िगरेशन की जांच करें और देखें कि एपीआई प्रॉक्सी
को गड़बड़ी में बताए गए वर्चुअल होस्ट के लिए अनुरोध स्वीकार करने के लिए कॉन्फ़िगर किया गया है. यह है
VirtualHost
एलिमेंट से दिखाया जाता है. चलिए,ProxyEndpoint
का सैंपल देखते हैं कॉन्फ़िगरेशन का इस्तेमाल करें.प्रॉक्सी एंडपॉइंट कॉन्फ़िगरेशन का सैंपल जो दिखाता है कि एपीआई प्रॉक्सी सुरक्षित वर्चुअल होस्ट
- मान लें कि वर्चुअल होस्ट एक खास एनवायरमेंट में इस तरह परिभाषित किए जाते हैं:
नाम पोर्ट होस्ट का उपनाम default
80
myorg-prod.apigee.net
secure
443
myorg-prod.apigee.net
- यूआरएल का इस्तेमाल करके,
default
VirtualHost
को एपीआई अनुरोध भेजा जाता हैhttp://myorg-prod.apigee.net/weather
ProxyEndpoint
मेंdefault
VirtualHost
नहीं हैं, जैसा कि उदाहरण के तौर पर ऊपर दिया गया है, तो आपको गड़बड़ी के इस मैसेज के साथ404
रिस्पॉन्स कोड मिलता है:{"fault":{"faultstring":"Unable to identify proxy for host: default and url: \/weather","detail":{"errorcode":"messaging.adaptors.http.flow.ApplicationNotFound"}}}
- इस समस्या को ठीक करने के लिए, नीचे दिए गए समाधान सेक्शन पर जाएं.
- अगर
ProxyEndpoint
को,default
पर अनुरोध स्वीकार करने के लिए कॉन्फ़िगर किया गया हैVirtualHost
, अगले कारण पर जाएं - पाथ किसी एपीआई प्रॉक्सी से जुड़ा नहीं है.
रिज़ॉल्यूशन
- मौजूदा
VirtualHost
कोProxyEndpoint
कॉन्फ़िगरेशन में जोड़ें, ताकि समस्या को हल करें. ऊपर दिखाए गए उदाहरण के लिए, आपके पास डिफ़ॉल्टVirtualHost
जोड़ने का विकल्प हैProxyEndpoint
कॉन्फ़िगरेशन में इस तरह से शामिल होगा:<VirtualHost>default</VirtualHost>
डिफ़ॉल्ट प्रॉक्सी एंडपॉइंट कॉन्फ़िगरेशन का सैंपल> VirtualHost> जोड़ा जा रहा है
- इसके अलावा, ऊपर बताए गए उदाहरण में, अगर आपको सिर्फ़
इस एपीआई प्रॉक्सी के लिए
secure
VirtualHost
. इसके बाद, एपीआई अनुरोध करें एचटीटीपीएस प्रोटोकॉल का इस्तेमाल करके सिर्फ़secure
VirtualHost
पर:https://myorg-prod.apigee.net/weather
वजह: एपीआई प्रॉक्सी के नए डिप्लॉय किए गए वर्शन से वर्चुअल होस्ट को हटाया गया
अगर किसी खास वर्चुअल होस्ट को हटाने के बाद, एपीआई प्रॉक्सी में कोई नया बदलाव किया जाता है (जो पिछले नियोजित संशोधन का हिस्सा था), जिसका क्लाइंट अब भी उपयोग कर रहा है तो इससे यह समस्या हो सकती है.
संक्रमण की जांच
- एपीआई प्रॉक्सी के लिए प्रॉक्सी एंडपॉइंट कॉन्फ़िगरेशन देखें और देखें कि एपीआई प्रॉक्सी
को गड़बड़ी में बताए गए वर्चुअल होस्ट के लिए अनुरोध स्वीकार करने के लिए कॉन्फ़िगर किया गया है. यह है
इसे
ProxyEndpoint
कॉन्फ़िगरेशन मेंVirtualHost
एलिमेंट से दिखाया जाता है. - अगर गड़बड़ी में बताया गया वर्चुअल होस्ट,
ProxyEndpoint
में मौजूद नहीं है कॉन्फ़िगर करें, फिर नीचे दिए गए चरणों को पूरा करें. या फिर, अगले कारण पर जाएं - पाथ किसी भी एपीआई प्रॉक्सी से जुड़ा हुआ नहीं है. - पहले डिप्लॉय किए गए बदलाव के
ProxyEndpoint
कॉन्फ़िगरेशन की तुलना, मौजूदा वर्शन से करें लागू किया गया संशोधन.- उदाहरण के लिए, मान लें कि लागू किए गए पिछले बदलाव
5
थे और फ़िलहाल डिप्लॉय किया गया वर्शन6
है:- रिविज़न 5 में प्रॉक्सी एंडपॉइंट में कॉन्फ़िगर किए गए वर्चुअल होस्ट
<HTTPProxyConnection> <BasePath>/weather</BasePath> <Properties/> <VirtualHost>vh1</VirtualHost> </HTTPProxyConnection>
- रिविज़न 6 में प्रॉक्सी एंडपॉइंट में कॉन्फ़िगर किए गए वर्चुअल होस्ट
<HTTPProxyConnection> <BasePath>/weather</BasePath> <Properties/> <VirtualHost>secure</VirtualHost> </HTTPProxyConnection>
- उदाहरण के लिए, मान लें कि लागू किए गए पिछले बदलाव
- ऊपर दिए गए उदाहरण में,
revision 5,
मेंVirtualHost vh1
मौजूद था लेकिनrevision 6
में हटा दिया गया है औरVirtualHost secure
से बदल दिया गया है. - इसलिए, अगर आप या आपके क्लाइंट इसका इस्तेमाल करके इस एपीआई प्रॉक्सी को अनुरोध भेज रहे हैं
VirtualHost vh1
(वहrevision 5
का हिस्सा था), तो आपको404
रिस्पॉन्स कोड के साथ गड़बड़ी का यह मैसेज:{"fault":{"faultstring":"Unable to identify proxy for host: vh1 and url: \/weather","detail":{"errorcode":"messaging.adaptors.http.flow.ApplicationNotFound"}}}
रिज़ॉल्यूशन
अगर आपको पता चलता है कि किसी नए बदलाव में वर्चुअल होस्ट या होस्ट को हटा दिया गया है, तो ऐसा जान-बूझकर किया गया था या ऐसा हो सकता है दुर्घटना हुई. हर मामले में, समस्या हल करने के लिए नीचे दिए गए समाधान/सुझाए गए तरीके अपनाएं.
स्थिति #1: जान-बूझकर बदलाव करना
अगर वर्चुअल होस्ट को जान-बूझकर हटाया गया है, तो इनमें से कोई एक विकल्प चुनें इनमें से पहला विकल्प, सुझाया गया तरीका है:
- किसी दूसरे बेस पाथ के साथ नया प्रॉक्सी बनाएं और एक अलग वर्चुअल होस्ट का इस्तेमाल करें (जो पहले लागू किए गए संशोधन में मौजूद नहीं है).
-
अगर मौजूदा एपीआई प्रॉक्सी का इस्तेमाल जारी रखना है, लेकिन किसी दूसरे वर्चुअल होस्ट का इस्तेमाल करना है, तो मौजूदा वर्चुअल होस्ट को बनाए रखना और अतिरिक्त वर्चुअल होस्ट को जोड़ना बेहतर होता है.
इससे यह पक्का होगा कि इस एपीआई प्रॉक्सी के उपयोगकर्ताओं पर इस बदलाव का कोई असर न हो.
अगर आपको मौजूदा एपीआई प्रॉक्सी का इस्तेमाल करना है और आपके पास सिर्फ़ अलग वर्चुअल होस्ट है, तो अपने उपयोगकर्ताओं को पहले से सूचित कर दें और रखरखाव की अवधि के दौरान यह बदलाव कर दें.
इससे यह पक्का होगा कि इस एपीआई प्रॉक्सी के उपयोगकर्ताओं को इस बदलाव की जानकारी है और वे इस एपीआई प्रॉक्सी पर कॉल करने के लिए, किसी दूसरे वर्चुअल होस्ट का इस्तेमाल कर सकता है. इसलिए, उन्हें इन बदलावों का कोई असर नहीं होगा.
स्थिति #2: अनजाने में हुआ बदलाव
अगर वर्चुअल होस्ट को जान-बूझकर नहीं, बल्कि गलती से हटाया गया है, तो ये करें:
- इस्तेमाल करने के लिए, डिप्लॉय किए गए मौजूदा वर्शन में
ProxyEndpoint
कॉन्फ़िगरेशन को अपडेट करें वही वर्चुअल होस्ट जिनका इस्तेमाल पिछले डिप्लॉय किए गए बदलावों में किया गया था. इस ऊपर दिए गए उदाहरण के मुताबिक, नीचे दिए गए सेक्शन को इससे बदलें:<HTTPProxyConnection> <BasePath>/weather</BasePath> <Properties/> <VirtualHost>secure</VirtualHost> </HTTPProxyConnection>
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया हैसे
<HTTPProxyConnection> <BasePath>/weather</BasePath> <Properties/> <VirtualHost>vh1</VirtualHost> </HTTPProxyConnection>
- बदलावों को फिर से डिप्लॉय करें.
सबसे सही तरीके
रखरखाव की अवधि के दौरान नई प्रॉक्सी या नए बदलाव डिप्लॉय करना हमेशा सही होता है या जब ट्रैफ़िक कम होने की उम्मीद हो. ऐसा इसलिए है, ताकि डिप्लॉयमेंट के दौरान होने वाली कोई भी समस्या हो होने से रोका गया है या ट्रैफ़िक पर होने वाले असर को कम किया जा सकता है.
वजह: पाथ किसी एपीआई प्रॉक्सी से जुड़ा नहीं है
अगर एपीआई प्रॉक्सी को
एपीआई अनुरोध यूआरएल का इस्तेमाल करते हैं, तो हमें गड़बड़ी के मैसेज के साथ 404 Not Found
रिस्पॉन्स मिल सकता है
Unable to identify proxy for host: VIRTUAL_HOST and url: PATH.
संक्रमण की जांच
- आपको जिस एपीआई प्रॉक्सी के लिए अनुरोध करना है उसके लिए,
ProxyEndpoint
कॉन्फ़िगरेशन देखें इसकी मदद से एपीआई अनुरोध किए जा सकते हैं. - देखें कि एपीआई प्रॉक्सी को बताए गए खास पाथ के अनुरोध स्वीकार करने के लिए कॉन्फ़िगर किया गया है या नहीं पर नहीं मिलेगा. ऐसा करने के लिए, स्थिति #1 और स्थिति #2.
स्थिति #1: पाथ, एपीआई प्रॉक्सी के बेसपाथ से मेल नहीं खाता
- अगर गड़बड़ी के मैसेज में दिखाया गया
path
,basepath
के जैसा नहीं है करने का विकल्प मिलता है या वहbasepath
से शुरू नहीं होता है, तो की वजह से गड़बड़ी हो सकती है. - आइए इसे समझाने के लिए एक उदाहरण लेते हैं:
- टारगेट किए गए एपीआई प्रॉक्सी का
basepath
/weather
है - एपीआई अनुरोध का यूआरएल
https://myorg-prod.apigee.net/climate
है. इसका मतलब है कि एपीआई अनुरोध यूआरएल में इस्तेमाल किया गया पाथ/climate.
है - इस उदाहरण में,
path
औरbasepath
, एक जैसे नहीं हैं और वेbasepath
से शुरू नहीं होना चाहिए. इस वजह से, आपको यह गड़बड़ी दिख रही है:{ "fault":{ "faultstring":"Unable to identify proxy for host: secure and url: \/climate", "detail":{ "errorcode":"messaging.adaptors.http.flow.ApplicationNotFound" } } }
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
रिज़ॉल्यूशन
- पक्का करें कि आपके एपीआई अनुरोध यूआरएल में इस्तेमाल किया गया
path
औरbasepath
एक ही हो करने की ज़रूरत नहीं होती. - ऊपर दिए गए उदाहरण में, एपीआई अनुरोध का यूआरएल इस तरह का होना चाहिए:
{ https://myorg-prod.apigee.net/weather
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
स्थिति #2: पाथ किसी भी उपलब्ध कंडीशनल फ़्लो से मैच नहीं होता
- अगर एपीआई अनुरोध यूआरएल में इस्तेमाल किया गया
path
,basepath
से शुरू होता है, तो तो हो सकता है किpath suffix
(वह हिस्सा जो इसके बाद आयाbasepath
) के बारे में गड़बड़ी के मैसेज में बताया गया है. यह किसी भी शर्त से मेल नहीं खाता तो इसकी वजह से404
गड़बड़ी हो सकती है. - आइए इसे समझाने के लिए एक उदाहरण लेते हैं:
- टारगेट किए गए एपीआई प्रॉक्सी का
basepath
/weather
है - एपीआई अनुरोध का यूआरएल
https://myorg-prod.apigee.net/weather/Delhi
है. इसका मतलब है एपीआई अनुरोध के यूआरएल में इस्तेमाल किया गया पाथ/weather/Delhi.
है
- टारगेट किए गए एपीआई प्रॉक्सी का
- इस उदाहरण में,
path
,basepath
/weather
से शुरू होता है. इसके अलावा, इसमें/Delhi
काpath suffix
है. - अब देखें कि
ProxyEndpoint
में, कोई कंडिशनल फ़्लो तो नहीं है. - अगर कोई कंडिशनल फ़्लो नहीं है या कुछ बिना शर्त वाले फ़्लो हैं, तो यहां जाएं अगला कारण - किसी एनवायरमेंट में एपीआई प्रॉक्सी को डिप्लॉय नहीं किया गया है.
- अगर
ProxyEndpoint
में सिर्फ़ कंडिशनल फ़्लो है, तो इनकी जांच करें:- अगर इन सभी कंडिशनल फ़्लो में शर्तें किसी खास
proxy.pathsuffix
की जांच करती हैं (बेसपाथ के बाद का पाथ). - और अगर एपीआई अनुरोध यूआरएल में बताया गया
path suffix
, इनमें से किसी से भी मेल नहीं खाता शर्तें लागू होती हैं, तो यही गड़बड़ी की वजह होती है.
- अगर इन सभी कंडिशनल फ़्लो में शर्तें किसी खास
- मान लें कि
ProxyEndpoint
में दो फ़्लो हैं और दोनों कंडिशनल फ़्लो, जैसा कि नीचे दिखाया गया है:<Condition>(proxy.pathsuffix MatchesPath "/Bangalore") and (request.verb = "GET")</Condition> <Condition>(proxy.pathsuffix MatchesPath "/Chennai") and (request.verb = "GET")</Condition>
- ऊपर दिखाए गए उदाहरण में, हमारे पास दो कंडिशनल फ़्लो हैं. पहला फ़्लो
/Bangalore
के लिएproxy.pathsuffix
(बेसपाथ के बाद का पाथ) और अन्य/Chennai
से मेल खाता है. हालांकि,/Delhi
से मिलता-जुलता कोई नतीजा नहीं मिला जो एपीआई अनुरोध यूआरएल में पास किया गयाpath suffix
है. 404
गड़बड़ी की वजह यही है. इसलिए, आपको यह गड़बड़ी दिखेगी:{ "fault":{ "faultstring":"Unable to identify proxy for host: secure and url: \/weather\/Delhi", "detail":{ "errorcode":"messaging.adaptors.http.flow.ApplicationNotFound" } } }
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
- ऊपर दिखाए गए उदाहरण में, हमारे पास दो कंडिशनल फ़्लो हैं. पहला फ़्लो
रिज़ॉल्यूशन
- पक्का करें कि
path suffix
, आपके प्रॉक्सी एंडपॉइंट में कम से कम एक कंडिशनल फ़्लो से मेल खाता हो. - ऊपर दिए गए उदाहरण में, गड़बड़ी को ठीक करने के लिए इन तरीकों का इस्तेमाल किया जा सकता है:
- अगर आपको पाथ
/Delhi
के लिए, नीतियों के किसी खास सेट को लागू करना है, तो इसके बाद, ज़रूरी नीतियों के साथ एक अलग फ़्लो जोड़ें और पक्का करें कि कोई शर्त जो/proxy.pathsuffix
/Delhi
से मेल खाता है, जैसा कि नीचे दिखाया गया है:<Condition>(proxy.pathsuffix MatchesPath "/Delhi") and (request.verb = "GET")</Condition>
- अगर आपको पाथ
/Delhi
के लिए नीतियों के सामान्य सेट को लागू करना है, तो सामान्य फ़्लो में, यह पक्का करें कि कोई ऐसी शर्त हो जो/proxy.pathsuffix
. इसका मतलब है कि यहbasepath
के बाद वाला कोई भी पाथ चालू कर देगा/weather
, जैसा कि नीचे दिखाया गया है:<Condition>(proxy.pathsuffix MatchesPath "/**") and (request.verb = "GET")</Condition>
- अगर आपको पाथ
अगर ProxyEndpoint
में सही basepath
और path suffix
एपीआई यूआरएल में बताया गया है
किसी एक कंडिशनल फ़्लो से मेल खाता है. इसके बाद, अगले कारण पर जाता है -
एपीआई प्रॉक्सी को एनवायरमेंट में डिप्लॉय नहीं किया गया है.
वजह: किसी एनवायरमेंट में एपीआई प्रॉक्सी को डिप्लॉय नहीं किया गया है
संक्रमण की जांच
- वह एनवायरमेंट तय करें जिसमें आपके एपीआई अनुरोध के यूआरएल में इस्तेमाल किया गया होस्ट अन्य नाम मौजूद है.
हर एनवायरमेंट में मौजूद सभी वर्चुअल होस्ट की जानकारी की जांच करके ऐसा किया जा सकता है
उपयोगकर्ता नाम और पासवर्ड (एज यूज़र इंटरफ़ेस) में डालें.
उदाहरण के लिए, यहां दिया गया कॉन्फ़िगरेशन मान लें:
- अगर आपने
http://myorg-prod.apigee.net/weather
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है आपका यूआरएल है, तोmyorg-prod.apigee.net
होस्ट का उपनाम है. - होस्ट का उपनाम
myorg-prod.apigee.net
आपके संगठन केprod
एनवायरमेंट में वर्चुअल होस्ट.
- अगर आपने
- यह देखें कि यहां बताए गए किसी खास एनवायरमेंट में, कोई एपीआई प्रॉक्सी डिप्लॉय की गई है या नहीं चरण 1 ऊपर दिया गया है.
- अगर एपीआई प्रॉक्सी को किसी खास एनवायरमेंट में डिप्लॉय नहीं किया गया है, तो इसकी वजह
404
गड़बड़ी.- इसलिए, ऊपर पहले चरण में इस्तेमाल किए गए उदाहरण में, मान लें कि एपीआई प्रॉक्सी को
prod
एनवायरमेंट है, तो यह गड़बड़ी की वजह है. - नीचे दिए गए रिज़ॉल्यूशन सेक्शन पर जाएं.
- इसलिए, ऊपर पहले चरण में इस्तेमाल किए गए उदाहरण में, मान लें कि एपीआई प्रॉक्सी को
- अगर एपीआई प्रॉक्सी किसी खास एनवायरमेंट में लागू किया जाता है, तो अगले कारण पर जाएं - मैसेज प्रोसेसर पर एनवायरमेंट लोड नहीं हुआ.
रिज़ॉल्यूशन
एपीआई प्रॉक्सी को उस खास एनवायरमेंट में डिप्लॉय करें जिसमें आपको एपीआई अनुरोध करने हैं.
वजह: मैसेज प्रोसेसर पर एनवायरमेंट लोड नहीं हुआ
संक्रमण की जांच
- हर मैसेज प्रोसेसर में लॉग इन करें और देखें कि जिस एनवायरमेंट में आपको
नीचे दिए गए कमांड का इस्तेमाल करके मैसेज प्रोसेसर पर एपीआई अनुरोध लोड करके, एपीआई अनुरोध भेज रहे हैं:
curl -v 0:8082/v1/runtime/organizations/<orgname>/environments
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है - अगर खास एनवायरमेंट को ऊपर दिए गए निर्देश के हिस्से के तौर पर सूची में शामिल किया गया है, तो अगली वजह पर जाएं - एक या उससे ज़्यादा मैसेज प्रोसेसर पर एपीआई प्रॉक्सी डिप्लॉय नहीं किया गया है.
- अगर किसी खास एनवायरमेंट की जानकारी सूची में नहीं है, तो जांच करें
/opt/apigee/var/log/edge-message-processor/logs/system.log
और/opt/apigee/var/log/edge-message-processor/logs/startupruntimeerrors.log
एनवायरमेंट लोड होने के दौरान होने वाली किसी भी गड़बड़ी के लिए, मैसेज प्रोसेसर को मैसेज भेजें. - ऐसी कई अलग-अलग गड़बड़ियां हो सकती हैं जिनकी वजह से, एनवायरमेंट को लोड करने में समस्या आ सकती है मैसेज प्रोसेसर चुन सकते हैं. रिज़ॉल्यूशन समस्या के हिसाब से तय होता है.
रिज़ॉल्यूशन
कई वजहों से, हो सकता है कि मैसेज प्रोसेसर पर एनवायरमेंट लोड न हो. इस सेक्शन पर उन कुछ संभावित वजहों की जानकारी दी गई है जिनकी वजह से यह समस्या हो सकती है. साथ ही, इसमें यह बताया गया है कि इसे कैसे ठीक किया जाए समस्या.
-
अगर आपको मैसेज प्रोसेसर लॉग में इनमें से कोई एक गड़बड़ी दिखती है, तो ऐसा किसी वजह से होता है कीस्टोर/ट्रस्टस्टोर में जोड़े गए सर्टिफ़िकेट/कुंजियों में समस्या मिली है का इस्तेमाल करें.
गड़बड़ी #1: java.security.KeyStoreexcept: खुद के सर्टिफ़िकेट को ओवरराइट नहीं किया जा सकता
2018-01-30 12:04:38,248 pool-47-thread-4 ERROR MESSAGING.RUNTIME - AbstractConfigurator.propagateEvent() : Error while handling the update for the Configurator com.apigee.kernel.exceptions.spi.UncheckedException: Failed to add certificate : mycert in key store : mytruststore in environment : test at com.apigee.entities.configurators.KeyStore.setCertificateEntry(KeyStore.java:156) ~[config-entities-1.0.0.jar:na] at com.apigee.entities.configurators.KeyStore.handleUpdate(KeyStore.java:101) ~[config-entities-1.0.0.jar:na] at com.apigee.entities.AbstractConfigurator.propagateEvent(AbstractConfigurator.java:85) ~[config-entities-1.0.0.jar:na] at com.apigee.messaging.runtime.Environment.handleUpdate(Environment.java:238) [message-processor-1.0.0.jar:na] … Caused by: java.security.KeyStoreException: Cannot overwrite own certificate at com.sun.crypto.provider.JceKeyStore.engineSetCertificateEntry(JceKeyStore.java:355) ~[sunjce_provider.jar:1.8.0_151] at java.security.KeyStore.setCertificateEntry(KeyStore.java:1201) ~[na:1.8.0_151] at com.apigee.entities.configurators.KeyStore.setCertificateEntry(KeyStore.java:153) ~[config-entities-1.0.0.jar:na]
... 20 common frames omitted
2018-01-30 12:04:38,250 pool-47-thread-4 ERROR MESSAGING.RUNTIME - AbstractConfigurator.rollbackTransaction() : Error in processing the changes : Unknown resource type cert
गड़बड़ी #2: java.security.KeyStoreexcept: सीक्रेट कुंजी को ओवरराइट नहीं किया जा सकता
2017-11-01 03:28:47,560 pool-21-thread-7 ERROR MESSAGING.RUNTIME - AbstractConfigurator.propagateEvent() : Error while handling the update for the Configurator com.apigee.kernel.exceptions.spi.UncheckedException: Failed to add certificate : mstore in key store : myTruststore in environment : dev at com.apigee.entities.configurators.KeyStore.setCertificateEntry(KeyStore.java:156) ~[config-entities-1.0.0.jar:na] at com.apigee.entities.configurators.KeyStore.handleUpdate(KeyStore.java:101) ~[config-entities-1.0.0.jar:na] ... Caused by: java.security.KeyStoreException: Cannot overwrite secret key at com.sun.crypto.provider.JceKeyStore.engineSetCertificateEntry(JceKeyStore.java:354) ~[sunjce_provider.jar:1.8.0_144] at java.security.KeyStore.setCertificateEntry(KeyStore.java:1201) ~[na:1.8.0_144] at com.apigee.entities.configurators.KeyStore.setCertificateEntry(KeyStore.java:153) ~[config-entities-1.0.0.jar:na] ... 20 common frames omitted 2017-11-01 03:28:47,562 pool-21-thread-7 ERROR MESSAGING.RUNTIME - AbstractConfigurator.rollbackTransaction() : Error in processing the changes : Unknown resource type cert
- यहां दिखाए गए गड़बड़ी के मैसेज में बताए गए कीस्टोर/ट्रस्टस्टोर की जानकारी पाएं
नीचे दिए गए मैनेजमेंट एपीआई कॉल का इस्तेमाल करके पिछले चरण पर जाएं:
curl -v "http://<management-IPaddress>:8080/v1/organizations/<org-name>/environments/<env-name>/keystores/myTruststore" -u <user>
आउटपुट का उदाहरण:
{ "certs":[ "mycert", "mycert-new" ], "keys":[ "mycert" ], "name":"myTruststore" }
- आउटपुट के उदाहरण से पता चलता है कि Truststore में दो सर्टिफ़िकेट और एक कुंजी मौजूद है
myTruststore
. आम तौर पर, Truststore में कोई कुंजी नहीं होती है. अगर हां, तो एक ही प्रमाणपत्र और एक कुंजी का होना बेहतर है. - नीचे दिए गए एपीआई का इस्तेमाल करके दो सर्टिफ़िकेट के बारे में जानकारी पाएं:
curl -s http://<management-IPaddress>:8080/v1/runtime/organizations/<org-name>/environments/<env-name>/keystores/<keystore-name>/certs/<cert-name>
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है - हर सर्टिफ़िकेट की समयसीमा खत्म होने की तारीख देखें. साथ ही, उस सर्टिफ़िकेट का पता लगाएं जिसकी समयसीमा खत्म हो चुकी है या पुराना है.
- ट्रस्टस्टोर
myTruststore
से उस सर्टिफ़िकेट को मिटाएं जिसकी समयसीमा खत्म हो चुकी है या जो ग़ैर-ज़रूरी है.
अगर समस्या अब भी बनी रहती है या आपको पहले चरण में बताई गई गड़बड़ियों के अलावा, कोई दूसरी गड़बड़ी दिखती है ऊपर, गड़बड़ी की जानकारी ज़रूर इकट्ठा करें पर जाएं.
वजह: एपीआई प्रॉक्सी नहीं है एक या ज़्यादा मैसेज प्रोसेसर पर डिप्लॉय किया गया है
एपीआई प्रॉक्सी को एक या उससे ज़्यादा मैसेज प्रोसेसर पर डिप्लॉय नहीं किया जा सकता. यह समस्या बहुत ज़्यादा होती है ऐसा बहुत कम होता है और ऐसा अक्सर, मैनेजमेंट सर्वर से इवेंट की सूचना मौजूद न होने की वजह से होता है. खास एपीआई प्रॉक्सी के डिप्लॉयमेंट के दौरान मैसेज प्रोसेसर. इस मामले में, आपको Edge यूज़र इंटरफ़ेस (यूआई) में ट्रेस सेशन नहीं बना सकता.
संक्रमण की जांच
- प्रत्येक संदेश प्रोसेसर में प्रवेश करें और यह देखने के लिए जांचें कि क्या
एपीआई प्रॉक्सी को डिप्लॉय किया गया है या इन निर्देशों का इस्तेमाल नहीं किया गया है:
curl -v 0:8082/v1/runtime/organizations/<orgname>/environments/<envname>/apis/<apiname>/revisions
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है - अगर एपीआई प्रॉक्सी में किया गया बदलाव, कमांड के आउटपुट के तौर पर नहीं दिखता है जैसा ऊपर बताया गया है, तो मैसेज प्रोसेसर को रीस्टार्ट करें, जैसा कि यहां बताया गया है रिज़ॉल्यूशन.
- सभी मैसेज प्रोसेसर के लिए, पहले से दूसरे चरण तक की प्रक्रिया दोहराएं.
- अगर एपीआई प्रॉक्सी में किसी खास बदलाव को सभी मैसेज प्रोसेसर पर डिप्लॉय किया जाता है, तो यह समस्या की वजह नहीं है. पर जाएँ ऐप्लिकेशन की परफ़ॉर्मेंस से जुड़ी जानकारी इकट्ठा करना ज़रूरी है.
रिज़ॉल्यूशन
मैसेज प्रोसेसर को फिर से चालू करें, जिस पर एपीआई प्रॉक्सी का खास संशोधन है परिनियोजित नहीं किया गया.
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
एपीआई मॉनिटरिंग का इस्तेमाल करके समस्याओं का पता लगाना
एपीआई मॉनिटरिंग की सुविधा की मदद से, समस्या वाली जगहों को तुरंत अलग किया जा सकता है गड़बड़ी, परफ़ॉर्मेंस, और इंतज़ार के समय से जुड़ी समस्याओं, और उनके सोर्स जैसे कि डेवलपर ऐप्लिकेशन का विश्लेषण करने के लिए, एपीआई प्रॉक्सी, बैकएंड टारगेट या एपीआई प्लैटफ़ॉर्म.
इस समस्या के लिए, एपीआई मॉनिटरिंग > जांच करें पेज और सही तारीख, प्रॉक्सी वगैरह चुनें और आपको ये जानकारी दिख सकती है:
- गलत कोड:
messaging.adaptors.http.flow.ApplicationNotFound
- स्टेटस कोड:
404
- गलत सोर्स:
Apigee
याMP
इसके अलावा, ऊपर दिए गए स्क्रीनशॉट में दिखाए गए तरीके से, लॉग देखें पर क्लिक करें. इसके बाद, आगे की जांच करें.
किसी सैंपल स्थिति का इस्तेमाल करके देखें कि
एपीआई मॉनिटरिंग का इस्तेमाल करके, अपने एपीआई से जुड़ी 5xx
समस्याओं को हल करें. उदाहरण के लिए, आप
सूचना पाने के लिए एक सूचना सेट अप करना चाहते हैं. ऐसा तब किया जाता है, जब 404
स्टेटस कोड की संख्या
तय थ्रेशोल्ड तक पहुंचना होगा.
ऐप्लिकेशन की परफ़ॉर्मेंस से जुड़ी जानकारी इकट्ठा करना ज़रूरी है
अगर ऊपर दिए गए निर्देशों का पालन करने के बाद भी समस्या बनी रहती है, तो . Apigee Edge की सहायता टीम से संपर्क करें और यह जानकारी शेयर करें.
- अगर आप Public Cloud उपयोगकर्ता हैं, तो यह जानकारी दें:
- संगठन का नाम
- परिवेश का नाम
- एपीआई प्रॉक्सी का नाम
- गड़बड़ी को ठीक करने के लिए curl कमांड पूरा करें
- अगर आप प्राइवेट क्लाउड उपयोगकर्ता हैं, तो यह जानकारी दें:
- गड़बड़ी का पूरा मैसेज दिखा
- परिवेश का नाम
- एपीआई प्रॉक्सी बंडल
- मैसेज प्रोसेसर के लॉग
/opt/apigee/var/log/edge-message-processor/logs/system.log
- हर मैसेज प्रोसेसर पर नीचे दिए गए कमांड का आउटपुट.
curl -v 0:8082/v1/runtime/organizations/<orgname>/environments
curl -v 0:8082/v1/runtime/organizations/<orgname>/environments/<envname>/apis/<apiname>/revisions
- इस प्लेबुक में आज़माए गए सेक्शन के बारे में जानकारी और ऐसी अन्य अहम जानकारी इस समस्या के समाधान के लिए हम तेज़ी से काम करेंगे.