Łączenie serwerów proxy API

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

Możesz określić, że jeden serwer proxy jest docelowym punktem końcowym innego, skutecznie łącząc 2 serwery proxy w łańcuchu serwerów proxy. Ten sposób łańcucha serwerów proxy może uniknąć przeskoków sieci i zwiększyć ogólną wydajność.

Łańcuchy proxy pozwalają określić, że jeden z nich jest lokalnym punktem końcowym innego serwera. Zamiast używać elementu HTTPTargetConnection do wywoływania drugiego serwera proxy, użyj elementu LocalTargetConnection.

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

Tworzenie łańcuchów serwerów proxy może być przydatne, gdy korzystasz z serwera proxy, który oferuje pewne dyskretne, niskopoziomowe funkcje, z których będą korzystać inne serwery proxy. Na przykład serwer proxy, który udostępnia operacje tworzenia, odczytu, aktualizacji i usuwania z magazynem danych backendu, może być docelowym serwerem proxy dla wielu innych serwerów proxy, które udostępniają dane klientom.

Film: obejrzyj krótki film, aby dowiedzieć się więcej o łańcuchu serwerów proxy interfejsów API.

Jak działa łańcuch proxy

Łańcuch proxy korzysta z połączenia lokalnego, by zminimalizować obciążenie sieci podczas wywoływania jednego serwera proxy z innego. To połączenie lokalne jest wydajniejsze, ponieważ pomija funkcje sieciowe, takie jak systemy równoważenia obciążenia, routery i procesory wiadomości.

Poniżej przedstawiamy różnicę między łączeniem serwerów proxy przy użyciu HTTPTargetConnection i LocalTargetConnection (łańcuch proxy):

Możesz połączyć serwery proxy, określając, że jeden z nich jest lokalnym docelowym punktem końcowym drugiego. Lokalne połączenie między serwerami proxy możesz utworzyć na 2 sposoby:

  • Podając nazwę docelowego serwera proxy i nazwę ProxyEndpoint
  • Podając ścieżkę do docelowego punktu końcowego serwera proxy

Docelowe serwery proxy łączysz w konfiguracji TargetEndpoint za pomocą elementu LocalTargetConnection w sposób opisany poniżej.

Łączenie serwerów proxy według nazwy serwera proxy

Docelowy serwer proxy możesz podać za pomocą nazwy. Może się to okazać najbardziej przydatne podczas tworzenia połączenia od samego początku i tworzenia serwerów proxy. Jeśli nie znasz nazwy (lub może się ona zmienić), rozważ nawiązanie połączenia ze ścieżką punktu końcowego docelowego serwera proxy w sposób opisany poniżej.

Podczas łączenia się z docelowym serwerem proxy przez podanie nazwy podajesz jego nazwę i ProxyEndpoint.

Poniższy przykład określa docelowy serwer proxy o nazwie data-manager oraz nazwę ProxyEndpoint ujawnianą przez data-manager. Więcej informacji znajdziesz w dokumentacji konfiguracji serwera proxy interfejsu 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>

Łączenie serwerów proxy według ścieżki

Docelowy serwer proxy możesz określić według ścieżki punktu końcowego. Warto to zrobić, gdy nie znasz nazwy serwera proxy lub gdy ta nazwa może się zmienić.

Jeśli serwer proxy jest po prostu konsumentem docelowego serwera proxy – na przykład gdy nie tworzysz obu – ścieżka może być najpewniejszym sposobem na nawiązanie połączenia. Jeśli na przykład serwer proxy, z którym się łączysz, został stworzony i utrzymywany przez inny zespół, możesz nawiązać połączenie za pomocą niezawodnej ścieżki punktu końcowego.

Poniższy przykład określa docelowy serwer proxy w lokalizacji /v1/streetcarts/foodcarts/data-manager, gdzie zakłada się, że host jest taki sam jak bieżący serwer proxy. Więcej informacji znajdziesz w dokumentacji dotyczącej konfiguracji serwera proxy interfejsu 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>

Łączenie serwerów proxy z konsolą zarządzania

Połączenia łańcuchowe serwerów proxy możesz tworzyć za pomocą konsoli zarządzania brzegowymi.

  1. Otwórz serwer proxy, który będzie korzystać z docelowego serwera proxy.
  2. W Nawigatorze kliknij znak plusa obok pozycji Target Endpoints (Punkty końcowe).
  3. W oknie Nowy docelowy punkt końcowy wpisz nazwę docelowego punktu końcowego.
  4. Poniżej pola Nazwa punktu końcowego docelowego wybierz jedną z tych opcji:
    • Łańcuch serwerów proxy, aby wybrać z listy serwerów proxy już istniejących w organizacji i środowisku.
      1. W menu Nazwa serwera proxy wybierz docelowy serwer proxy.
      2. W polu Punkt końcowy serwera proxy wpisz ścieżkę docelowego punktu końcowego serwera proxy, z którym chcesz nawiązać połączenie.
    • Łańcuch ścieżek, by wpisać ścieżkę bazową docelowego serwera proxy, na przykład /mypath/myproxy/myendpoint.
  5. Kliknij Dodaj.

Połączone serwery proxy, usługi API i zabezpieczenia

Łańcuch proxy najlepiej sprawdza się w sytuacjach, gdy oba serwery proxy są w tej samej usłudze API. Domyślnie obie te usługi są dostępne dla klientów. Apigee nie obsługuje obecnie łączenia drugiego serwera proxy w oddzielnej usłudze API, do której klienci nie powinni mieć dostępu.

Jeśli drugi serwer proxy musi być zabezpieczony przed bezpośrednimi żądaniami klienta, rozważ dodanie logiki, aby drugi serwer proxy sprawdzał adres IP klienta. W przypadku wywołania za pomocą łańcucha adres IP jest lokalny. Zanim zezwolisz na przetwarzanie, Twój kod może potwierdzić, że jest on lokalny. Jeden z tych sposobów znajdziesz w zasadach kontroli dostępu.