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

Связанные прокси, продукты API и безопасность

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

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