Объединение прокси API вместе

Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee
X.info

Вы можете указать, что один прокси-сервер является целевой конечной точкой другого, фактически соединяя два прокси-сервера в цепочку. Такое объединение прокси-серверов помогает избежать сетевого перехода и, следовательно, повысить общую производительность.

При использовании цепочки прокси-серверов вы указываете, что один прокси-сервер является локальной целевой конечной точкой другого. Вместо использования элемента HTTPTargetConnection для вызова второго прокси-сервера, вы используете элемент LocalTargetConnection .

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

Использование цепочки прокси-серверов может оказаться полезным, если у вас есть прокси, предоставляющий определенную низкоуровневую функциональность, которую будут использовать другие прокси. Например, прокси, предоставляющий операции создания/чтения/обновления/удаления данных из хранилища данных, может быть целевым прокси для нескольких других прокси, предоставляющих эти данные клиентам.

Видео: Посмотрите короткое видео, чтобы узнать больше о цепочке API-прокси.

Как работает цепочка прокси

Использование цепочки прокси-серверов позволяет минимизировать сетевые накладные расходы при вызове одного прокси-сервера из другого. Это локальное соединение более эффективно, поскольку обходит сетевые функции, такие как балансировщики нагрузки, маршрутизаторы и обработчики сообщений.

Ниже приведена иллюстрация различия между подключением прокси-серверов с использованием HTTPTargetConnection и LocalTargetConnection (цепочка прокси):

Соединение между прокси-серверами осуществляется путем указания того, что один из них является локальной целевой точкой другого. Создать локальное соединение между прокси-серверами можно двумя способами:

  • Указав имя целевого прокси-сервера и имя ProxyEndpoint
  • Указав путь к целевой конечной точке прокси-сервера.

Подключение целевых прокси-серверов осуществляется в конфигурации TargetEndpoint с помощью элемента LocalTargetConnection , как описано ниже.

Подключение прокси-серверов по имени прокси-сервера

Вы можете указать целевой прокси-сервер по имени. Это может оказаться наиболее полезным при создании соединения с нуля и совместной разработке прокси-серверов. Если вы не знаете имя (или имя может измениться), рассмотрите возможность подключения по пути конечной точки целевого прокси-сервера, как описано ниже.

При подключении к целевому прокси-серверу по имени вы указываете имя прокси-сервера и имя его ProxyEndpoint .

В следующем примере указан целевой прокси-сервер с именем data-manager , а также имя ProxyEndpoint , предоставляемое data-manager . Для получения дополнительной информации см. справочник по настройке 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>

Подключение прокси-серверов по пути

Вы можете указать целевой прокси-сервер по пути к его конечной точке. Такой способ может быть полезен, если вы не знаете имя прокси-сервера или если имя может измениться.

Если ваш прокси-сервер просто использует целевой прокси-сервер — например, если вы не разрабатываете оба — то указанный путь может быть наиболее надежным способом подключения. Например, если прокси-сервер, к которому вы подключаетесь, разработан и поддерживается другой командой, вам может потребоваться подключиться, используя надежный путь к конечной точке.

В следующем примере указывается целевой прокси-сервер по адресу /v1/streetcarts/foodcarts/data-manager , где предполагается, что хост совпадает с текущим прокси-сервером. Для получения дополнительной информации см. справочник по настройке 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>

Подключение прокси-серверов к консоли управления

Вы можете создавать цепочки прокси-соединений с помощью консоли управления Edge.

  1. Откройте прокси-сервер, который будет взаимодействовать с целевым прокси-сервером.
  2. В панели навигации нажмите знак плюса рядом с пунктом «Целевые конечные точки» .
  3. В диалоговом окне «Новая целевая конечная точка» введите имя целевой конечной точки.
  4. В поле «Имя целевой конечной точки» выберите один из следующих вариантов:
    • Использование цепочки прокси-серверов позволяет выбирать прокси-серверы из списка, уже имеющихся в организации и среде.
      1. В раскрывающемся списке «Имя прокси» выберите целевой прокси.
      2. В поле «Конечная точка прокси» введите путь к целевой конечной точке прокси, к которой вы хотите подключиться.
    • Использование цепочки путей позволяет ввести базовый путь целевого прокси-сервера, например /mypath/myproxy/myendpoint .
  5. Нажмите «Добавить» .

Цепочки прокси, API-продукты и безопасность

Использование цепочки прокси-серверов лучше всего подходит в случаях, когда оба прокси-сервера находятся в одном и том же API-продукте. По умолчанию оба доступны клиентам. В настоящее время Apigee не поддерживает включение второго прокси-сервера в отдельный API-продукт, к которому клиенты не должны иметь доступа.

Если ваш второй прокси-сервер должен быть защищен от прямых запросов клиента, рассмотрите возможность добавления логики, которая заставит ваш второй прокси-сервер проверять IP-адрес клиента. В случае вызова, выполненного в цепочке, IP-адрес будет локальным. Ваш код может проверить, является ли он локальным, прежде чем разрешить продолжение обработки. Один из способов сделать это описан в политике контроля доступа .