आपको Apigee Edge का दस्तावेज़ दिख रहा है.
Apigee X के दस्तावेज़ पर जाएं. जानकारी
यह तय किया जा सकता है कि एक प्रॉक्सी, दूसरी प्रॉक्सी का टारगेट एंडपॉइंट है. इससे दोनों प्रॉक्सी, प्रॉक्सी चेन में कनेक्ट हो जाती हैं. इस तरह से प्रॉक्सी को चेन करने से, आपको नेटवर्क हॉप से बचने में मदद मिल सकती है. साथ ही, इससे परफ़ॉर्मेंस को बेहतर बनाया जा सकता है.
प्रॉक्सी चेनिंग की मदद से, यह तय किया जाता है कि एक प्रॉक्सी, दूसरी प्रॉक्सी का लोकल टारगेट एंडपॉइंट है.
दूसरी प्रॉक्सी को कॉल करने के लिए, HTTPTargetConnection एलिमेंट का इस्तेमाल करने के बजाय, LocalTargetConnection एलिमेंट का इस्तेमाल करें.
<LocalTargetConnection>
<APIProxy>myproxy2</APIProxy>
<ProxyEndpoint>default</ProxyEndpoint>
</LocalTargetConnection>प्रॉक्सी चेनिंग तब काम आ सकती है, जब आपके पास कोई ऐसी प्रॉक्सी हो जो कुछ अलग और बुनियादी फ़ंक्शन उपलब्ध कराती हो. इन फ़ंक्शन का इस्तेमाल अन्य प्रॉक्सी करेंगी. उदाहरण के लिए, बैकएंड डेटा स्टोर के साथ create/read/update/delete ऑपरेशनों को दिखाने वाली कोई प्रॉक्सी, क्लाइंट को डेटा दिखाने वाली कई अन्य प्रॉक्सियों के लिए टारगेट प्रॉक्सी हो सकती है.
वीडियो: एपीआई प्रॉक्सी चेनिंग के बारे में ज़्यादा जानने के लिए, यह छोटा वीडियो देखें.
प्रॉक्सी चेनिंग कैसे काम करती है
प्रॉक्सी चेनिंग, लोकल कनेक्शन का इस्तेमाल करती है. इससे एक प्रॉक्सी से दूसरी प्रॉक्सी को कॉल करते समय, नेटवर्क का इस्तेमाल कम होता है. यह लोकल कनेक्शन ज़्यादा असरदार होता है, क्योंकि यह लोड बैलेंसर, राउटर, और मैसेज प्रोसेसर जैसी नेटवर्क सुविधाओं को बायपास करता है.
HTTPTargetConnection
और LocalTargetConnection (प्रॉक्सी चेनिंग) का इस्तेमाल करके प्रॉक्सी कनेक्ट करने के बीच का अंतर यहां दिखाया गया है:


प्रॉक्सी को कनेक्ट करने के लिए, यह तय किया जाता है कि एक प्रॉक्सी, दूसरी प्रॉक्सी का लोकल टारगेट एंडपॉइंट है. प्रॉक्सी के बीच लोकल कनेक्शन दो तरीकों से बनाया जा सकता है:
- टारगेट प्रॉक्सी का नाम और
ProxyEndpointname - टारगेट प्रॉक्सी एंडपॉइंट का पाथ तय करके
नीचे दिए गए तरीके से, LocalTargetConnection एलिमेंट का इस्तेमाल करके, TargetEndpoint कॉन्फ़िगरेशन में टारगेट प्रॉक्सी कनेक्ट की जाती हैं.
प्रॉक्सी के नाम से प्रॉक्सी कनेक्ट करना
नाम के हिसाब से टारगेट प्रॉक्सी तय की जा सकती है. आपको यह सुविधा तब सबसे ज़्यादा काम की लग सकती है, जब आपको शुरू से कनेक्शन बनाना हो और प्रॉक्सी को एक साथ डेवलप करना हो. अगर आपको नाम नहीं पता है या नाम बदल सकता है, तो टारगेट प्रॉक्सी के एंडपॉइंट पाथ से कनेक्ट करें. इसके बारे में यहां बताया गया है.
नाम के हिसाब से किसी टारगेट प्रॉक्सी से कनेक्ट करने के लिए, आपको प्रॉक्सी का नाम और उसके ProxyEndpoint का नाम बताना होगा.
यहां दिए गए उदाहरण में, data-manager नाम की टारगेट प्रॉक्सी के साथ-साथ, data-manager से मिले ProxyEndpoint के नाम के बारे में बताया गया है. रेफ़रंस के लिए, एपीआई प्रॉक्सी कॉन्फ़िगरेशन का रेफ़रंस देखें.
<TargetEndpoint name="datamanager">
<PreFlow name="PreFlow">
<!-- PreFlow policies -->
</PreFlow>
<PostFlow name="PostFlow">
<!-- PostFlow policies -->
</PostFlow>
<LocalTargetConnection>
<APIProxy>data-manager</APIProxy>
<ProxyEndpoint>default</ProxyEndpoint>
</LocalTargetConnection>
</TargetEndpoint>पाथ के हिसाब से प्रॉक्सी कनेक्ट करना
एंडपॉइंट पाथ के हिसाब से, टारगेट प्रॉक्सी तय की जा सकती है. आपको इस तरीके का इस्तेमाल तब करना चाहिए, जब आपको प्रॉक्सी का नाम न पता हो या जब नाम बदल सकता हो.
अगर आपकी प्रॉक्सी, टारगेट प्रॉक्सी का सिर्फ़ उपभोक्ता है, जैसे कि जब दोनों को डेवलप नहीं किया जा रहा हो, तो पाथ कनेक्ट करने का सबसे भरोसेमंद तरीका हो सकता है. उदाहरण के लिए, अगर आपने जिस प्रॉक्सी से कनेक्ट किया है उसे किसी दूसरी टीम ने बनाया है और वह उसका रखरखाव करती है, तो आपको भरोसेमंद एंडपॉइंट पाथ का इस्तेमाल करके कनेक्ट करना चाहिए.
यहां दिए गए उदाहरण में, /v1/streetcarts/foodcarts/data-manager पर टारगेट प्रॉक्सी के बारे में बताया गया है. इसमें होस्ट को मौजूदा प्रॉक्सी के बराबर माना गया है. रेफ़रंस जानकारी के लिए, एपीआई प्रॉक्सी कॉन्फ़िगरेशन रेफ़रंस देखें.
<TargetEndpoint name="datamanager">
<PreFlow name="PreFlow">
<!-- PreFlow policies -->
</PreFlow>
<PostFlow name="PostFlow">
<!-- PostFlow policies -->
</PostFlow>
<LocalTargetConnection>
<Path>/v1/streetcarts/foodcarts/data-manager</Path>
</LocalTargetConnection>
</TargetEndpoint>प्रॉक्सी को मैनेजमेंट कंसोल से कनेक्ट करना
Edge Management Console का इस्तेमाल करके, प्रॉक्सी चेनिंग कनेक्शन बनाए जा सकते हैं.
- उस प्रॉक्सी को खोलें जो टारगेट प्रॉक्सी का इस्तेमाल करेगी.
- नेविगेटर में, टारगेट एंडपॉइंट के बगल में मौजूद प्लस के निशान पर क्लिक करें.
- नया टारगेट एंडपॉइंट डायलॉग में, टारगेट एंडपॉइंट का नाम डालें.
- टारगेट एंडपॉइंट का नाम बॉक्स के नीचे, इनमें से कोई एक विकल्प चुनें:
-
प्रॉक्सी चेनिंग की मदद से, संगठन और एनवायरमेंट में पहले से मौजूद प्रॉक्सी की सूची में से कोई प्रॉक्सी चुनें.
- प्रॉक्सी का नाम ड्रॉपडाउन में, टारगेट प्रॉक्सी चुनें.
- प्रॉक्सी एंडपॉइंट बॉक्स में, टारगेट प्रॉक्सी एंडपॉइंट का वह पाथ डालें जिससे आपको कनेक्ट करना है.
- टारगेट प्रॉक्सी का बेस पाथ डालने के लिए, पाथ चेनिंग का इस्तेमाल करें. जैसे,
/mypath/myproxy/myendpoint.
-
प्रॉक्सी चेनिंग की मदद से, संगठन और एनवायरमेंट में पहले से मौजूद प्रॉक्सी की सूची में से कोई प्रॉक्सी चुनें.
- जोड़ें पर क्लिक करें.
चेन की गई प्रॉक्सी, एपीआई प्रॉडक्ट, और सुरक्षा
प्रॉक्सी चेनिंग उन मामलों के लिए सबसे सही है जहां दोनों प्रॉक्सी एक ही एपीआई प्रॉडक्ट में हैं. डिफ़ॉल्ट रूप से, ये दोनों क्लाइंट के लिए उपलब्ध होते हैं. Apigee, फ़िलहाल दूसरी प्रॉक्सी को ऐसे अलग एपीआई प्रॉडक्ट में बंडल करने की सुविधा नहीं देता है जिसे क्लाइंट ऐक्सेस न कर पाएं.
अगर आपको अपनी दूसरी प्रॉक्सी को क्लाइंट के सीधे अनुरोधों से सुरक्षित रखना है, तो लॉजिक जोड़ें, ताकि आपकी दूसरी प्रॉक्सी क्लाइंट के आईपी पते की जांच कर सके. चेनिंग के ज़रिए किए गए कॉल के मामले में, आईपी पता स्थानीय होगा. आपका कोड यह पुष्टि कर सकता है कि यह स्थानीय है. इसके बाद ही, प्रोसेसिंग जारी रखने की अनुमति दी जा सकती है. ऐसा करने का एक तरीका जानने के लिए, ऐक्सेस कंट्रोल की नीति देखें.