Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee X.info
В этом документе объясняется, как настроить тайм-аут ввода-вывода на маршрутизаторах Apigee Edge.
Тайм-аут ввода-вывода на маршрутизаторе представляет собой время, в течение которого маршрутизатор ожидает получения ответа от обработчика сообщений после установления соединения и отправки запроса обработчику сообщений. Значение по умолчанию для тайм-аута ввода-вывода на маршрутизаторе составляет 57 секунд.
Время ожидания ввода-вывода для маршрутизаторов можно увеличить или уменьшить по сравнению со значением по умолчанию в 57 секунд в зависимости от ваших потребностей. Его можно настроить следующими способами:
- В виртуальном хосте
- На роутере
Следующие параметры управляют тайм-аутом ввода-вывода на маршрутизаторах:
| Название объекта недвижимости | Расположение | Описание |
|---|---|---|
proxy_read_timeout | Виртуальный хост | Указывает максимальное время, в течение которого маршрутизатор ожидает ответа от обработчика сообщений после установления соединения и отправки запроса обработчику сообщений. Если в течение указанного периода ожидания от обработчика сообщений не поступит ответа, маршрутизатор выдаст ошибку тайм-аута. По умолчанию это свойство принимает значение, установленное для свойства Если это свойство изменяется с новым значением таймаута для конкретного виртуального хоста, то это затрагивает только API-прокси, использующие этот конкретный виртуальный хост. |
conf_load_balancing_load.balancing.driver.proxy.read.timeout | Маршрутизатор | Указывает максимальное время, в течение которого маршрутизатор ожидает ответа от обработчика сообщений после установления соединения и отправки запроса обработчику сообщений. Если в течение указанного периода ожидания от обработчика сообщений не поступит ответа, маршрутизатор выдаст ошибку тайм-аута. Это свойство используется для всех виртуальных хостов на этом маршрутизаторе. Значение по умолчанию для этого параметра составляет 57 секунд . Вы можете либо изменить это свойство, как описано в разделе «Настройка таймаута ввода-вывода на маршрутизаторах» ниже, либо переопределить это значение, установив свойство Вы можете задать временной интервал для этого свойства не в секундах, используя следующую запись: ms: milliseconds s: seconds (default) m: minutes h: hours d: days w: weeks M: months (length of 30 days) y: years (length of 365 days) |
conf_load_balancing_load.balancing.driver.nginx.upstream_next_timeout | Маршрутизатор | Указывает общее время, в течение которого маршрутизатор ожидает ответа от всех обработчиков сообщений после установления соединения и отправки запроса каждому обработчику сообщений. Это применимо, если в вашей установке Edge используется несколько обработчиков сообщений и включена функция повторной попытки при возникновении ошибок. Значение может быть одним из следующих:
Как и в случае со свойством |
Прежде чем начать
Прежде чем приступить к выполнению действий, описанных в этом документе, убедитесь, что вы понимаете следующие темы:
- Если вы не знакомы со свойствами виртуального хоста, прочтите справочник по свойствам виртуального хоста .
- Если вы не знакомы с настройкой параметров Edge в частном облаке, прочтите статью «Как настроить Edge» .
- Убедитесь, что вы следуете рекомендациям по настройке тайм-аутов ввода-вывода, изложенным в разделе «Рекомендации по передовым методам» .
Настройка таймаута ввода-вывода в виртуальном хосте
В этом разделе объясняется, как настроить тайм-аут ввода-вывода на виртуальном хосте, связанном с организацией и средой. Тайм-аут ввода-вывода можно настроить на виртуальном хосте с помощью свойства proxy_read_timeout , которое представляет значение тайм-аута ввода-вывода в секундах.
Виртуальный хост можно настроить одним из следующих способов:
- Edge UI
- API Edge
Edge UI
Для настройки виртуального хоста с помощью пользовательского интерфейса Edge выполните следующие действия:
- Войдите в пользовательский интерфейс Edge .
- Перейдите в раздел Администрирование > Виртуальные хосты .
- Выберите конкретную среду , в которой вы хотите внести это изменение.
- Выберите конкретный виртуальный хост, для которого вы хотите настроить новое значение таймаута ввода-вывода.
- В разделе «Свойства» измените значение параметра « Время ожидания чтения прокси-сервера» в секундах.
Например, если вы хотите установить время ожидания на 120 секунд, введите 120, как показано на следующем рисунке:

- Сохраните сдачу.
API Edge
Для настройки виртуального хоста с использованием Edge API выполните следующие действия:
- Получите текущую конфигурацию виртуального хоста, используя API Get virtual host , как показано ниже:
Пользователь публичного облака
curl -v -X GET https//api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>Пользователь частного облака
curl -v -X GET http://<management-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>Где:
{organization-name} — это название организации.
{environment-name} — это название среды.
{virtualhost-name} — это имя виртуального хоста.
Пример конфигурации виртуального хоста
{ "hostAliases": [ "api.myCompany,com" ], "interfaces": [], "listenOptions": [], "name": "secure", "port": "443", "retryOptions": [], "sSLInfo": { "ciphers": [], "clientAuthEnabled": "false", "enabled": "true", "ignoreValidationErrors": false, "keyAlias": "myCompanyKeyAlias", "keyStore": "ref://myCompanyKeystoreref", "protocols": [] }, "useBuiltInFreeTrialCert": false } - Добавьте свойство
proxy_read_timeoutв существующую JSON-конфигурацию виртуального хоста в разделеproperties, указав значение в секундах.Например, чтобы изменить время ожидания ввода-вывода на 120 секунд, добавьте блок кода
properties, как показано ниже:Пример обновленной конфигурации виртуального хоста.
{ "hostAliases": [ "api.myCompany,com", ], "interfaces": [], "listenOptions": [], "name": "secure", "port": "443", "retryOptions": [], "properties": { "property": [ { "name": "proxy_read_timeout", "value": "120" } ] }, "sSLInfo": { "ciphers": [], "clientAuthEnabled": "false", "enabled": "true", "ignoreValidationErrors": false, "keyAlias": "myCompanyKeyAlias", "keyStore": "ref://myCompanyKeystoreref", "protocols": [] }, "useBuiltInFreeTrialCert": false } - Сохраните обновлённую конфигурацию виртуального хоста в файл. Например,
virtualhost-payload.json. - Обновите конфигурацию
virtualhostвнеся изменения, используя API обновления виртуального хоста следующим образом:Пользователь публичного облака
curl -v -X POST Content-Type: application/json https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -d @virtualhost-payload.json -u <username>
Пользователь частного облака
curl -v -X POST Content-Type: application/json http://<management-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -d @virtualhost-payload.json -u <username>
Где:
{organization-name} — это название организации.
{environment-name} — это название среды.
{virtualhost-name} — это имя виртуального хоста.
Проверка таймаута ввода-вывода на виртуальных хостах
В этом разделе объясняется, как проверить успешность изменения времени ожидания ввода-вывода на виртуальном хосте с помощью Edge API.
- Выполните команду Get virtual host API, чтобы получить конфигурацию
virtualhost, как показано ниже:Пользователь публичного облака
curl -v -X GET https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>Пользователь частного облака
curl -v -X GET http://<management server-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>Где:
{organization-name} — это название организации.
{environment-name} — это название среды.
{virtualhost-name} — это имя виртуального хоста.
- Убедитесь, что свойство
proxy_read_timeoutустановлено на новое значение.Пример обновленной конфигурации виртуального хоста.
{ "hostAliases": [ "api.myCompany,com", ], "interfaces": [], "listenOptions": [], "name": "secure", "port": "443", "retryOptions": [], "properties": { "property": [ { "name": "proxy_read_timeout", "value": "120" } ] }, "sSLInfo": { "ciphers": [], "clientAuthEnabled": "false", "enabled": "true", "ignoreValidationErrors": false, "keyAlias": "myCompanyKeyAlias", "keyStore": "ref://myCompanyKeystoreref", "protocols": [] }, "useBuiltInFreeTrialCert": false }В приведенном выше примере обратите внимание, что параметр
proxy_read_timeoutбыл установлен на новое значение 120 секунд. - Если значение параметра
proxy_read_timeout,убедитесь, что вы правильно выполнили все шаги, описанные в разделе «Настройка таймаута ввода-вывода в виртуальном хосте» . Если вы пропустили какой-либо шаг, повторите все шаги заново. - Если вам по-прежнему не удается изменить время ожидания ввода-вывода, обратитесь в службу поддержки Apigee Edge .
Настройка таймаута ввода-вывода на маршрутизаторах
В этом разделе объясняется, как настроить тайм-аут ввода-вывода на маршрутизаторах. Тайм-аут ввода-вывода можно настроить с помощью свойства маршрутизатора conf_load_balancing_load.balancing.driver.proxy.read.timeout , которое представляет значение тайм-аута ввода-вывода в секундах.
Для настройки таймаута ввода-вывода на маршрутизаторах выполните следующие действия:
- На маршрутизаторе откройте следующий файл в текстовом редакторе. Если он еще не существует, создайте его.
/opt/apigee/customer/application/router.properties
Например, чтобы открыть файл с помощью
vi, введите следующую команду:vi /opt/apigee/customer/application/router.properties
- Добавьте в файл
propertiesстроку следующего формата, заменив значение параметраtime_in_seconds: - Сохраните изменения.
- Убедитесь, что этот файл свойств принадлежит пользователю
apigee, как показано ниже:chown apigee:apigee /opt/apigee/customer/application/router.properties
- Перезагрузите маршрутизатор, как показано ниже:
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
- Если у вас несколько маршрутизаторов, повторите описанные выше шаги на всех маршрутизаторах.
conf_load_balancing_load.balancing.driver.proxy.read.timeout=time_in_seconds
Например, чтобы изменить время ожидания ввода-вывода на маршрутизаторе на 120 секунд, добавьте следующую строку:
conf_load_balancing_load.balancing.driver.proxy.read.timeout=120
Вы также можете изменить время ожидания ввода-вывода в минутах. Например, чтобы установить время ожидания на две минуты, добавьте следующую строку:
conf_load_balancing_load.balancing.driver.proxy.read.timeout=2m
Проверка таймаута ввода-вывода на маршрутизаторах.
В этом разделе объясняется, как проверить, что время ожидания ввода-вывода на маршрутизаторах было успешно изменено.
Даже если вы используете токен conf_load_balancing_load.balancing.driver.proxy.read.timeout для установки таймаута ввода-вывода на маршрутизаторе, необходимо убедиться, что фактическое свойство proxy_read_timeout было установлено с новым значением.
- Найдите свойство
proxy_read_timeoutв каталоге/opt/nginx/conf.dи проверьте, установлено ли для него новое значение, как показано ниже:grep -ri "proxy_read_timeout" /opt/nginx/conf.d
- Если новое значение таймаута ввода-вывода успешно установлено на маршрутизаторе, то приведенная выше команда отобразит новое значение во всех файлах конфигурации виртуальных хостов.
Ниже приведён пример результата выполнения команды
grepпри таймауте ввода-вывода в 120 секунд:/opt/nginx/conf.d/0-default.conf:proxy_read_timeout 120; /opt/nginx/conf.d/0-edge-health.conf:proxy_read_timeout 1s;
В приведенном выше примере обратите внимание, что свойство
proxy_read_timeoutбыло установлено на новое значение 120 в0-default.conf, который является конфигурационным файлом для виртуального хоста по умолчанию. Это указывает на то, что таймаут ввода-вывода успешно настроен на 120 секунд на маршрутизаторе. - Если для свойства
proxy_read_timeoutпо-прежнему отображается старое значение, убедитесь, что вы правильно выполнили все шаги, описанные в разделе «Настройка таймаута ввода-вывода на маршрутизаторах» . Если вы пропустили какой-либо шаг, повторите все шаги заново. - Если вам по-прежнему не удается изменить время ожидания ввода-вывода, обратитесь в службу поддержки Apigee Edge .
Что дальше?
Узнайте о настройке тайм-аута ввода-вывода в обработчике сообщений.