שרשור של ממשקי proxy ל-API

אתם צופים במסמכי התיעוד של Apigee Edge.
כדאי לעיין במסמכי התיעוד של Apigee X.
מידע

אפשר לציין ששרת proxy אחד הוא נקודת היעד של שרת proxy אחר, וכך לחבר בין שני שרתי proxy בשרשרת proxy. שרשור של שרתי proxy באופן הזה יכול לעזור לכם להימנע מניתוב מחדש ברשת, וכך לשפר את הביצועים הכוללים.

בשרשור של שרתי proxy, מציינים ששרת proxy אחד הוא נקודת הקצה המקומית של שרת proxy אחר. במקום להשתמש באלמנט HTTPTargetConnection כדי להתקשר לשרת ה-proxy השני, משתמשים באלמנט LocalTargetConnection.

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

שרשור פרוקסי יכול להיות שימושי אם יש לכם פרוקסי שמציע פונקציונליות נפרדת ברמה נמוכה, שפרוקסי אחרים יכולים להשתמש בה. לדוגמה, שרת proxy שחושף פעולות של יצירה, קריאה, עדכון ומחיקה עם מאגר נתונים בעורף העורף יכול להיות שרת proxy יעד לכמה שרתי proxy אחרים שחושפים את הנתונים ללקוחות.

סרטון: סרטון קצר על שרשור של שרתי proxy ל-API

איך פועל שרשור של שרתי proxy

שרשור שרתי proxy משתמש בחיבור מקומי כדי לצמצם את התקורה של הרשת כשמתקשרים משרת proxy אחד לשרת proxy אחר. החיבור המקומי הזה יעיל יותר כי הוא עוקף תכונות ברשת כמו איזון עומסים, נתבים ומעבדי הודעות.

האיור הבא ממחיש את ההבדל בין חיבור שרתי proxy באמצעות HTTPTargetConnection לבין חיבור שרתי proxy באמצעות LocalTargetConnection (שרשור של שרתי proxy):

כדי לקשר בין שרתי proxy, צריך לציין שאחד מהם הוא נקודת קצה מקומית של השני. אפשר ליצור חיבור מקומי בין שרתי proxy בשתי דרכים:

  • על ידי ציון השם של שרת proxy לחלוקת העומס של היעד ושל ProxyEndpoint שם
  • ציון נתיב לנקודת הקצה של שרת ה-Proxy

כדי לקשר בין שרתי proxy של יעד בהגדרה של TargetEndpoint, משתמשים ברכיב LocalTargetConnection, כמו שמתואר בהמשך.

חיבור שרתי proxy לפי שם שרת ה-proxy

אפשר לציין את שרת ה-proxy היעד לפי שם. השיטה הזו שימושית במיוחד כשיוצרים את החיבור מההתחלה ומפתחים את השרתים הפרוקסי ביחד. אם אתם לא יודעים את השם (או אם השם עשוי להשתנות), כדאי להתחבר לנתיב נקודת הקצה של שרת ה-proxy של היעד, כמו שמתואר בהמשך.

כשמתחברים לשרת proxy יעד לפי שם, מציינים את שם ה-proxy ואת השם של ProxyEndpoint שלו.

בדוגמה הבאה מצוין שרת proxy ליעד בשם data-manager, יחד עם השם ProxyEndpoint שנחשף על ידי data-manager. מידע נוסף מופיע במאמר הפניית תצורת proxy ל-API.

<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>

חיבור שרתי proxy לפי נתיב

אפשר לציין את שרת ה-proxy היעד לפי נתיב נקודת הקצה שלו. כדאי לעשות את זה אם אתם לא יודעים את שם השרת הפרוקסי, או אם השם עשוי להשתנות.

אם ה-proxy שלכם הוא רק הצרכן של ה-proxy של היעד – למשל, אם אתם לא מפתחים את שניהם – יכול להיות שהנתיב הוא הדרך הכי אמינה להתחבר. לדוגמה, אם ה-proxy שאליו אתם מתחברים פותח ומתוחזק על ידי צוות אחר, כדאי להתחבר באמצעות נתיב נקודת קצה מהימן.

בדוגמה הבאה מוגדר שרת proxy ליעד בכתובת /v1/streetcarts/foodcarts/data-manager, כאשר המארח זהה לשרת ה-proxy הנוכחי. מידע נוסף מופיע במאמר הפניית תצורת proxy ל-API.

<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>

חיבור שרתי proxy למסוף הניהול

אפשר ליצור חיבורים של שרשור פרוקסי באמצעות מסוף הניהול של Edge.

  1. פותחים את שרת ה-Proxy שישתמש בשרת ה-Proxy של היעד.
  2. בסרגל הניווט, לוחצים על סמל הפלוס לצד Target Endpoints (נקודות קצה של יעד).
  3. בתיבת הדו-שיח New Target Endpoint (נקודת קצה חדשה של יעד), מזינים את השם של נקודת הקצה של היעד.
  4. מתחת לתיבה Target Endpoint Name, בוחרים באחת מהאפשרויות הבאות:
    • Proxy Chaining כדי לבחור מתוך רשימה של שרתי proxy שכבר נמצאים בארגון ובסביבה.
      1. בתפריט הנפתח שם ה-Proxy, בוחרים את ה-Proxy של היעד.
      2. בתיבה Proxy Endpoint (נקודת קצה של שרת proxy), מזינים את נתיב נקודת הקצה של שרת ה-proxy שאליו רוצים להתחבר.
    • Path Chaining (שרשור נתיבים) כדי להזין את נתיב הבסיס של שרת proxy לחלוקת העומס של היעד, כמו /mypath/myproxy/myendpoint.
  5. לוחצים על הוספה.

שרתי proxy בשרשרת, מוצרי API ואבטחה

שרשור פרוקסי מתאים במיוחד למקרים שבהם שני שרתי הפרוקסי נמצאים באותו מוצר API. כברירת מחדל, שניהם זמינים ללקוחות. בשלב הזה, Apigee לא תומך בחבילה של ה-proxy השני במוצר API נפרד שללקוחות לא אמורה להיות גישה אליו.

אם צריך להגן על השרת השני מפני בקשות ישירות של לקוחות, כדאי להוסיף לוגיקה שתאפשר לשרת השני לבדוק את כתובת ה-IP של הלקוח. במקרה של שיחה שמתבצעת באמצעות שרשור, כתובת ה-IP תהיה מקומית. הקוד יכול לאמת שהוא מקומי לפני שהוא מאפשר להמשיך את העיבוד. אפשר לעיין במדיניות בקרת הגישה כדי לראות דרך אחת לעשות את זה.