Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee X.info
В этом разделе описываются транспортные свойства, которые можно установить в конфигурациях TargetEndpoint и ProxyEndpoint для управления обменом сообщениями и поведением соединения. Полное описание конфигурации TargetEndpoint и ProxyEndpoint см. в справочнике по конфигурации API-прокси .
Транспортные свойства TargetEndpoint
Элемент HTTPTargetConnection в конфигурациях TargetEndpoint определяет набор свойств HTTP-транспорта. Вы можете использовать эти свойства для настройки конфигураций на уровне транспорта.
Свойства элементов TargetEnpoint HTTPTargetConnection задаются, как показано ниже:
<TargetEndpoint name="default">
<HTTPTargetConnection>
<URL>http://mocktarget.apigee.net</URL>
<Properties>
<Property name="supports.http10">true</Property>
<Property name="request.retain.headers">User-Agent,Referer,Accept-Language</Property>
<Property name="retain.queryparams">apikey</Property>
</Properties>
<CommonName>COMMON_NAME_HERE</CommonName>
</HTTPTargetConnection>
</TargetEndpoint>Спецификация транспортного свойства TargetEndpoint
| Название объекта недвижимости | Значение по умолчанию | Описание |
|---|---|---|
keepalive.timeout.millis | 60000 | Истекло время ожидания простоя целевого соединения в пуле соединений. Если соединение в пуле простаивает дольше указанного предела, то соединение закрывается. |
connect.timeout.millis | | Истекло время ожидания соединения с целевым сервером. Edge возвращает код состояния HTTP |
io.timeout.millis | 55000 | Если в течение указанного количества миллисекунд отсутствуют данные для чтения или если сокет не готов к записи данных в течение указанного количества миллисекунд, то транзакция рассматривается как превышение тайм-аута.
Это значение всегда должно быть меньше значения свойства proxy_read_timeout виртуального хоста . Это значение должно быть меньше, чем время ожидания, используемое маршрутизатором для связи с обработчиком сообщений. Дополнительные сведения см. в разделе «Настройка времени ожидания маршрутизатора» . Дополнительную информацию см. в разделе «Настройка параметров io.timeout.millis и api.timeout для Edge» . |
supports.http10 | true | Если это true и клиент отправляет запрос с кодом 1.0, то целевому объекту также отправляется запрос с кодом 1.0. В противном случае целевому объекту отправляется запрос с кодом 1.1. |
supports.http11 | true | Если это true и клиент отправляет запрос 1.1, то целевому объекту также отправляется запрос 1.1; в противном случае целевому объекту отправляется запрос 1.0. |
use.proxy | true | Если установлено значение true , и конфигурация прокси-сервера указана в файле http.properties (только для локальных развертываний), то целевые подключения будут использовать указанный прокси-сервер. |
use.proxy.tunneling | true | Если этот параметр установлен в true , и конфигурации прокси указаны в http.properties (только для локальных развертываний), то целевые соединения будут использовать указанный туннель. Если целевой сервер использует TLS/SSL, то это свойство игнорируется, и сообщение всегда отправляется через туннель. |
enable.method.override | false | Для указанного метода HTTP устанавливается заголовок X-HTTP-Method-Override в исходящем запросе к целевому сервису. Например, <Property name="GET.override.method">POST</Property> |
*.override.method | Н/Д | Для указанного метода HTTP устанавливается заголовок X-HTTP-Method-Override в исходящем запросе. Например, <Property name="GET.override.method">POST</Property> |
request.streaming.enabled | false | По умолчанию ( |
response.streaming.enabled | false | По умолчанию ( |
success.codes | Н/Д | По умолчанию Apigee Edge рассматривает HTTP-коды Установка этого свойства переопределяет значения по умолчанию. Поэтому, если вы хотите добавить HTTP-код <Property name="success.codes">1XX,2XX,3XX,400</Property> Если вы хотите, чтобы только HTTP-код <Property name="success.codes">400</Property> Если установить HTTP-код |
compression.algorithm | Н/Д | По умолчанию Apigee Edge перенаправляет запросы целевому объекту, используя тот же тип сжатия, что и запрос клиента. Если запрос получен от клиента, например, с использованием сжатия gzip, то Apigee Edge перенаправляет запрос целевому объекту, используя сжатие gzip. Если ответ, полученный от целевого объекта, использует deflate, то Apigee Edge перенаправляет ответ клиенту, используя deflate. Поддерживаемые значения:
См. также: Поддерживает ли Apigee сжатие/распаковку с помощью GZIP/deflate? |
request.retain.headers. | true | По умолчанию Apigee Edge всегда сохраняет все HTTP-заголовки в исходящих сообщениях. Если установлено значение true , все HTTP-заголовки, присутствующие во входящем запросе, устанавливаются и в исходящем запросе. |
request.retain.headers | Н/Д | Определяет конкретные HTTP-заголовки запроса, которые должны быть установлены в исходящем запросе к целевому сервису. Например, чтобы передать заголовок User-Agent , установите значение request.retain.headers равным User-Agent . Несколько HTTP-заголовков указываются в виде списка, разделенного запятыми, например, User-Agent,Referer,Accept-Language . Это свойство переопределяет request.retain.headers.enabled . Если request.retain.headers.enabled установлено в false , любые заголовки, указанные в свойстве request.retain.headers по-прежнему будут установлены в исходящем сообщении. |
response.retain.headers. | true | По умолчанию Apigee Edge всегда сохраняет все HTTP-заголовки в исходящих сообщениях. Если установлено значение true , все HTTP-заголовки, присутствующие во входящем ответе от целевой службы, устанавливаются в исходящем ответе перед его передачей в ProxyEndpoint. |
response.retain.headers | Н/Д | Определяет конкретные HTTP-заголовки из ответа, которые должны быть установлены в исходящем ответе перед его передачей в ProxyEndpoint. Например, чтобы передать заголовок Expires , установите значение response.retain.headers равным Expires . Несколько HTTP-заголовков указываются в виде списка, разделенного запятыми, например, Expires,Set-Cookie . Это свойство переопределяет response.retain.headers.enabled . Если response.retain.headers.enabled установлено в false , любые заголовки, указанные в свойстве response.retain.headers , все равно будут установлены в исходящем сообщении. |
retain.queryparams. | true | По умолчанию Apigee Edge всегда сохраняет все параметры запроса в исходящих запросах. Если установлено значение true , все параметры запроса, присутствующие во входящем запросе, устанавливаются в исходящем запросе к целевому сервису. |
retain.queryparams | Н/Д | Определяет конкретные параметры запроса, которые необходимо установить в исходящем запросе. Например, чтобы включить параметр запроса apikey из сообщения запроса, установите retain.queryparams в значение apikey . Несколько параметров запроса указываются в виде списка, разделенного запятыми, например, apikey,environment . Это свойство переопределяет retain.queryparams.enabled . |
Свойства транспорта ProxyEndpoint
Элементы ProxyEndpoint HTTPTargetConnection определяют набор свойств HTTP-транспорта. Эти свойства можно использовать для настройки конфигураций на уровне транспорта.
Свойства элементов ProxyEnpoint HTTPProxyConnection задаются следующим образом:
<ProxyEndpoint name="default">
<HTTPProxyConnection>
<BasePath>/v1/weather</BasePath>
<Properties>
<Property name="request.streaming.enabled">true</Property>
</Properties>
<VirtualHost>default</VirtualHost>
<VirtualHost>secure</VirtualHost>
</HTTPProxyConnection>
</ProxyEndpoint>Дополнительную информацию о виртуальных хостах см. в разделе «О виртуальных хостах» .
Спецификация транспортного свойства ProxyEndpoint
| Название объекта недвижимости | Значение по умолчанию | Описание |
|---|---|---|
X-Forwarded-For | false | Если установлено значение true , IP-адрес виртуального хоста добавляется к исходящему запросу в качестве значения заголовка HTTP X-Forwarded-For . |
request.streaming. | false | По умолчанию ( false ) данные HTTP-запросов считываются в буфер, и политики, которые могут работать с этими данными, функционируют должным образом. В случаях, когда данные превышают размер буфера (10 МБ), вы можете установить этот атрибут в true . Если true , данные HTTP-запросов не считываются в буфер; они передаются в поток запросов TargetEndpoint в неизмененном виде. В этом случае любые политики, работающие с данными в потоке запросов ProxyEndpoint, игнорируются. См. также Потоковая передача запросов и ответов . |
response.streaming. | false | По умолчанию ( false ) данные HTTP-ответа считываются в буфер, и политики, которые могут работать с этими данными, функционируют должным образом. В случаях, когда данные превышают размер буфера (10 МБ), вы можете установить этот атрибут в true . Если true , данные HTTP-ответа не считываются в буфер; они передаются клиенту в неизмененном виде. В этом случае любые политики, работающие с данными в потоке ответа ProxyEndpoint, игнорируются. См. также Потоковая передача запросов и ответов . |
compression.algorithm | Н/Д | По умолчанию Apigee Edge учитывает тип сжатия, заданный для каждого полученного сообщения. Например, если клиент отправляет запрос с использованием сжатия gzip, Apigee Edge перенаправляет запрос целевому объекту, также используя сжатие gzip. Вы можете настроить алгоритмы сжатия, которые будут применяться явно, установив это свойство в TargetEndpoint или ProxyEndpoint. Поддерживаемые значения:
См. также: Поддерживает ли Apigee сжатие/распаковку с помощью GZIP/deflate? |
api.timeout | Н/Д | Настройте время ожидания для отдельных API-прокси. Вы можете настроить API-прокси, даже те, у которых включена потоковая передача , на таймаут по истечении указанного времени со статусом
Это свойство нельзя задать с помощью переменной. Клиенты, которые не могут изменить тайм-ауты Edge, также могут настроить тайм-аут прокси-сервера API, при условии, что этот тайм-аут короче стандартного тайм-аута обработчика сообщений Edge, составляющего 57 секунд. Дополнительную информацию см. в разделе «Настройка параметров io.timeout.millis и api.timeout для Edge» . |
Настройка параметров io.timeout.millis и api.timeout для Edge
В Edge работа io.timeout.millis и api.timeout взаимосвязана. При каждом запросе к API-прокси:
- Маршрутизатор отправляет значение таймаута обработчику сообщений. Значение таймаута маршрутизатора может быть либо значением параметра
proxy_read_timeoutустановленным виртуальным хостом , обрабатывающим запрос, либо значением таймаута по умолчанию, равным 57 секундам. - Затем обработчик сообщений устанавливает
api.timeout:- Если
api.timeoutне задан на уровне прокси-сервера, установите его значение равным таймауту маршрутизатора. - Если
api.timeoutзадан на уровне прокси, установите его в обработчике сообщений на меньшее из двух значений: таймаута маршрутизатора или значения параметраapi.timeout.
- Если
Значение параметра
api.timeoutопределяет максимальное время, в течение которого API-прокси должен выполняться от момента запроса к API до получения ответа.После выполнения каждой политики в API-прокси или до отправки запроса обработчику сообщений на целевую конечную точку, обработчик сообщений вычисляет (
api.timeout- прошедшее время с начала запроса). Если значение меньше нуля, то истекло максимальное время обработки запроса, и обработчик сообщений возвращает ошибку504.Значение параметра
io.timeout.millisопределяет максимальное время, в течение которого целевая конечная точка должна ответить.Перед подключением к целевой конечной точке обработчик сообщений определяет меньшее из двух значений: (
api.timeout- прошедшее время с начала запроса) иio.timeout.millis. Затем он устанавливает значениеio.timeout.millisравным этому значению.- Если во время записи HTTP-запроса истекает время ожидания, возвращается
408, Request Timeout. - Если при чтении HTTP-ответа происходит превышение времени ожидания, возвращается
504, Gateway Timeout.
- Если во время записи HTTP-запроса истекает время ожидания, возвращается
О ScriptTarget для приложений Node.js
Элемент ScriptTarget используется для интеграции приложения Node.js в ваш прокси-сервер. Для получения дополнительной информации об использовании Node.js и ScriptTarget см.:
О конечных точках HostedTarget
Пустой тег <HostedTarget/> указывает Edge использовать в качестве целевого объекта приложение Node.js, развернутое в среде Hosted Targets. Подробнее см. в разделе «Обзор Hosted Targets» .