एपीआई प्रॉक्सी को एक साथ चेन करना

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

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

प्रॉक्सी चेन की मदद से यह तय किया जाता है कि एक प्रॉक्सी, दूसरे प्रॉक्सी का लोकल टारगेट एंडपॉइंट है. दूसरे प्रॉक्सी को कॉल करने के लिए, HTTPTargetConnection एलिमेंट के बजाय, LocalTargetConnection एलिमेंट का इस्तेमाल किया जाता है.

<LocalTargetConnection>
    <APIProxy>myproxy2</APIProxy>
    <ProxyEndpoint>default</ProxyEndpoint>
</LocalTargetConnection>

आपको प्रॉक्सी चेन तब काम की लग सकती है, जब आपके पास कोई ऐसी प्रॉक्सी हो जो कुछ निचले लेवल की कुछ ऐसी सुविधाएं भी देती हो जिनका इस्तेमाल अन्य प्रॉक्सी इस्तेमाल कर सकते हैं. उदाहरण के लिए, कोई प्रॉक्सी जो बैकएंड डेटा स्टोर की मदद से बनाने/पढ़ने/अपडेट करने/मिटाने की कार्रवाई दिखाने की जानकारी देती है, वह कई अन्य प्रॉक्सी के लिए टारगेट प्रॉक्सी हो सकती है, जो क्लाइंट को डेटा दिखाती हैं.

वीडियो: एपीआई प्रॉक्सी चेन के बारे में ज़्यादा जानने के लिए एक छोटा वीडियो देखें.

प्रॉक्सी चेन कैसे काम करती है

एक प्रॉक्सी को दूसरे से कॉल करते समय नेटवर्क ओवरहेड को कम करने के लिए, प्रॉक्सी चेन में लोकल कनेक्शन का इस्तेमाल किया जाता है. यह लोकल कनेक्शन बेहतर तरीके से काम करता है, क्योंकि यह लोड बैलेंसर, राऊटर, और मैसेज प्रोसेसर जैसी नेटवर्क की सुविधाओं को बायपास कर देता है.

यहां HTTPTargetConnection और LocalTargetConnection (प्रॉक्सी चेन) का इस्तेमाल करके, प्रॉक्सी को कनेक्ट करने के बीच के अंतर को दिखाया गया है:

प्रॉक्सी को कनेक्ट करने के लिए यह तय किया जाता है कि कोई एक टारगेट एंडपॉइंट दूसरे का लोकल टारगेट एंडपॉइंट है. प्रॉक्सी के बीच दो तरीकों से लोकल कनेक्शन बनाया जा सकता है:

  • टारगेट प्रॉक्सी का नाम और ProxyEndpoint नाम तय करके
  • टारगेट प्रॉक्सी एंडपॉइंट का पाथ तय करके

जैसा कि नीचे बताया गया है, LocalTargetConnection एलिमेंट का इस्तेमाल करके, TargetEndpoint कॉन्फ़िगरेशन में टारगेट प्रॉक्सी को कनेक्ट किया जा सकता है.

प्रॉक्सी के नाम से प्रॉक्सी कनेक्ट करना

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

किसी टारगेट प्रॉक्सी को नाम के साथ कनेक्ट करने पर, आपको प्रॉक्सी और उसके ProxyEndpoint का नाम बताना होता है.

इस उदाहरण में, data-manager नाम की टारगेट प्रॉक्सी के साथ-साथ ProxyEndpoint के नाम के बारे में बताया गया है, जिसे data-manager ने दिखाया है. रेफ़रंस जानकारी के लिए, एपीआई प्रॉक्सी कॉन्फ़िगरेशन का रेफ़रंस देखें.

<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 मैनेजमेंट कंसोल का इस्तेमाल करके, प्रॉक्सी चेन कनेक्शन बनाए जा सकते हैं.

  1. वह प्रॉक्सी खोलें जो टारगेट प्रॉक्सी का इस्तेमाल कर रहा है.
  2. नेविगेटर में, टारगेट एंडपॉइंट के बगल में मौजूद प्लस के निशान पर क्लिक करें.
  3. नया टारगेट एंडपॉइंट डायलॉग में, टारगेट एंडपॉइंट का नाम डालें.
  4. टारगेट एंडपॉइंट का नाम बॉक्स के नीचे, इनमें से कोई एक चुनें:
    • संगठन और एनवायरमेंट में पहले से मौजूद प्रॉक्सी की सूची में से चुनने के लिए, प्रॉक्सी चेन का इस्तेमाल करें.
      1. प्रॉक्सी नाम ड्रॉपडाउन में, टारगेट प्रॉक्सी चुनें.
      2. प्रॉक्सी एंडपॉइंट बॉक्स में, वह टारगेट प्रॉक्सी एंडपॉइंट पाथ डालें जिससे आपको कनेक्ट करना है.
    • टारगेट प्रॉक्सी बेस पाथ डालने के लिए पाथ चेन, जैसे कि /mypath/myproxy/myendpoint.
  5. जोड़ें पर क्लिक करें.

चेन्ड प्रॉक्सी, एपीआई प्रॉडक्ट, और सिक्योरिटी

दोनों प्रॉक्सी को एक ही एपीआई प्रॉडक्ट में इस्तेमाल करने पर, प्रॉक्सी चेन का इस्तेमाल करना सबसे बेहतर विकल्प होता है. डिफ़ॉल्ट रूप से, दोनों क्लाइंट के लिए उपलब्ध होते हैं. फ़िलहाल, Apigee को किसी दूसरे एपीआई प्रॉडक्ट में, दूसरे प्रॉक्सी को बंडल करने की सुविधा नहीं है. क्लाइंट के पास इसका ऐक्सेस नहीं होना चाहिए.

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