Как объединять прокси API

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

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

При цепочке прокси-серверов вы указываете, что один прокси-сервер является локальной целевой конечной точкой другого. Вместо элемента 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. В диалоговом окне New Target Endpoint (Новая целевая конечная точка) введите название целевой конечной точки.
  4. Под полем Название целевой конечной точки выберите один из следующих вариантов:
    • Цепочка прокси, чтобы выбрать из списка прокси, уже имеющихся в организации и среде.
      1. В раскрывающемся списке Название прокси-сервера выберите целевой прокси-сервер.
      2. В поле Proxy Endpoint (Конечная точка прокси) введите целевой путь конечной точки прокси, к которой вы хотите подключиться.
    • Path Chaining (Цепочка путей), чтобы ввести базовый путь целевого прокси-сервера, например /mypath/myproxy/myendpoint.
  5. Нажмите Добавить.

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

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

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