Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X. Информация
В этой статье рассказывается, как настроить тайм-аут ввода-вывода на маршрутизаторах Apigee Edge.
Время ожидания ввода-вывода на маршрутизаторе – это время, в течение которого маршрутизатор ждет ответа от обработчика сообщений после установления соединения и отправки запроса обработчику сообщений. Значение по умолчанию для времени ожидания ввода-вывода на маршрутизаторе составляет 57 секунд.
Время ожидания ввода-вывода для маршрутизаторов можно увеличить или уменьшить по сравнению со значением по умолчанию (57 секунд) в зависимости от ваших потребностей. Его можно настроить следующими способами:
- В виртуальном хосте
- На маршрутизаторе
Следующие свойства управляют тайм-аутом ввода-вывода на маршрутизаторах:
| Название ресурса | Местоположение | Описание |
|---|---|---|
proxy_read_timeout
|
Виртуальный хост |
Указывает максимальное время, в течение которого маршрутизатор ожидает ответа от Message Processor после установления подключения и отправки запроса Message Processor. Если Message Processor не ответит в течение этого времени ожидания, маршрутизатор превысит время ожидания. По умолчанию это свойство принимает значение, заданное для свойства Если это свойство будет изменено и для определенного виртуального хоста будет задано новое значение времени ожидания, то это повлияет только на прокси API, использующие этот виртуальный хост. |
conf_load_balancing_load.balancing.driver.proxy.read.timeout
|
Маршрутизатор |
Указывает максимальное время, в течение которого маршрутизатор ожидает ответа от Message Processor после установления подключения и отправки запроса Message Processor. Если Message Processor не ответит в течение этого времени ожидания, маршрутизатор превысит время ожидания. Это свойство используется для всех виртуальных хостов на этом маршрутизаторе. Значение по умолчанию – 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
- Edge API
Интерфейс Edge
Чтобы настроить виртуальный хост с помощью интерфейса Edge, выполните следующие действия:
- Войдите в интерфейс Edge.
- Перейдите в раздел Администратор > Виртуальные хосты.
- Выберите платформу, на которой вы хотите внести изменения.
- Выберите виртуальный хост, для которого нужно настроить новое значение времени ожидания ввода-вывода.
- В разделе Свойства измените значение Тайм-аут чтения прокси-сервера в секундах.
Например, если вы хотите изменить время ожидания на 120 секунд, введите 120, как показано на рисунке ниже.
- Сохраните изменения.
Edge API
Чтобы настроить виртуальный хост с помощью 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 Update a virtual host (Обновить виртуальный хост), как показано ниже.Пользователь общедоступного облака
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.
- Выполните API
Get virtual host (Получить виртуальный хост), чтобы получить конфигурацию
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.
- Найдите в каталоге
/opt/nginx/conf.dсвойствоproxy_read_timeoutи проверьте, установлено ли для него новое значение: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.
Что дальше?
Подробнее о настройке времени ожидания ввода-вывода в Message Processor…