Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X. информация
В этом документе объясняется, как настроить тайм-аут ввода-вывода на маршрутизаторах 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
, которое представляет значение тайм-аута ввода-вывода в секундах.
Вы можете настроить виртуальный хост одним из следующих способов:
- Пограничный интерфейс
- Пограничный API
Пограничный интерфейс
Чтобы настроить виртуальный хост с помощью пользовательского интерфейса Edge, выполните следующие действия:
- Войдите в пользовательский интерфейс Edge .
- Перейдите в «Администратор» > «Виртуальные хосты» .
- Выберите конкретную среду , в которой вы хотите внести это изменение.
- Выберите конкретный виртуальный хост, для которого вы хотите настроить новое значение тайм-аута ввода-вывода.
- В разделе «Свойства» обновите значение «Таймаут чтения прокси» в секундах.
Например, если вы хотите изменить время ожидания на 120 секунд, введите 120, как показано на следующем рисунке:
- Сохраните изменение.
Пограничный API
Чтобы настроить виртуальный хост с помощью Edge API, выполните следующие действия:
- Получите текущую конфигурацию виртуального хоста с помощью API получения виртуального хоста , как показано ниже:
Пользователь публичного облака
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.
- Выполните 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 .
Настройка тайм-аута ввода-вывода на маршрутизаторах
В этом разделе объясняется, как настроить тайм-аут ввода-вывода на маршрутизаторах. Тайм-аут ввода-вывода можно настроить с помощью свойства Router 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 .
Что дальше?
Узнайте о настройке тайм-аута ввода-вывода в процессоре сообщений.