Настройка тайм-аута ввода-вывода на маршрутизаторах

Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X.
информация

В этом документе объясняется, как настроить тайм-аут ввода-вывода на маршрутизаторах Apigee Edge.

Тайм-аут ввода-вывода на маршрутизаторе представляет собой время, в течение которого маршрутизатор ожидает получения ответа от процессора сообщений после установления соединения и отправки запроса процессору сообщений. Значение тайм-аута ввода-вывода на маршрутизаторе по умолчанию составляет 57 секунд.

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

  • На виртуальном хосте
  • На маршрутизаторе

Следующие свойства управляют тайм-аутом ввода-вывода на маршрутизаторах:

Имя свойства Расположение Описание
proxy_read_timeout Виртуальный хост

Указывает максимальное время, в течение которого маршрутизатор ожидает получения ответа от процессора сообщений после установления соединения и отправки запроса процессору сообщений.

Если в течение этого периода времени нет ответа от процессора сообщений, то время ожидания маршрутизатора истекает.

По умолчанию это свойство принимает значение, установленное для свойства conf_load_balancing_load.balancing.driver.proxy.read.timeout на маршрутизаторе. Значение по умолчанию — 57 секунд .

Если это свойство изменено с использованием нового значения тайм-аута для определенного виртуального хоста, это повлияет только на прокси-серверы API, использующие этот конкретный виртуальный хост.

conf_load_balancing_load.balancing.driver.proxy.read.timeout Маршрутизатор

Указывает максимальное время, в течение которого маршрутизатор ожидает получения ответа от процессора сообщений после установления соединения и отправки запроса процессору сообщений.

Если в течение этого периода времени нет ответа от процессора сообщений, то время ожидания маршрутизатора истекает.

Это свойство используется для всех виртуальных хостов на этом маршрутизаторе.

Значение этого свойства по умолчанию — 57 секунд .

Вы можете либо изменить это свойство, как описано в разделе «Настройка тайм-аута ввода-вывода на маршрутизаторах» ниже, либо перезаписать это значение, установив свойство proxy_read_timeout на уровне виртуального хоста.

Вы можете установить интервал времени для этого свойства как нечто отличное от секунд, используя следующее обозначение:

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 имеет несколько процессоров сообщений и повторная попытка включена при возникновении ошибок. Он имеет одно из следующих значений:

  • Текущее значение conf_load_balancing_load.balancing.driver.proxy.read.timeout
  • Значение по умолчанию 57 секунд.

Как и в случае со свойством conf_load_balancing_load.balancing.driver.proxy.read.timeout , вы можете указать временные интервалы, отличные от значений по умолчанию (в секундах).

Прежде чем начать

Прежде чем использовать действия, описанные в этом документе, убедитесь, что вы понимаете следующие темы:

Настройка тайм-аута ввода-вывода на виртуальном хосте

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

Вы можете настроить виртуальный хост одним из следующих способов:

  • Пограничный интерфейс
  • Пограничный API

Пограничный интерфейс

Чтобы настроить виртуальный хост с помощью пользовательского интерфейса Edge, выполните следующие действия:

  1. Войдите в пользовательский интерфейс Edge .
  2. Перейдите в «Администратор» > «Виртуальные хосты» .
  3. Выберите конкретную среду , в которой вы хотите внести это изменение.
  4. Выберите конкретный виртуальный хост, для которого вы хотите настроить новое значение тайм-аута ввода-вывода.
  5. В разделе «Свойства» обновите значение «Таймаут чтения прокси» в секундах.

    Например, если вы хотите изменить время ожидания на 120 секунд, введите 120, как показано на следующем рисунке:

    Proxy read timeout value of 120

  6. Сохраните изменение.

Пограничный API

Чтобы настроить виртуальный хост с помощью Edge API, выполните следующие действия:

  1. Получите текущую конфигурацию виртуального хоста с помощью 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
        }
    
  2. Добавьте свойство 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
    }
    
  3. Сохраните обновленную конфигурацию виртуального хоста в файле. Например, virtualhost-payload.json .
  4. Обновите конфигурацию 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.

  1. Выполните 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} — имя виртуального хоста.

  2. Убедитесь, что для свойства 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 секунд.

  3. Если вы все еще видите старое значение proxy_read_timeout, убедитесь, что вы правильно выполнили все шаги, описанные в разделе «Настройка тайм-аута ввода-вывода на виртуальном хосте» . Если вы пропустили какой-либо шаг, повторите все шаги еще раз правильно.
  4. Если вы по-прежнему не можете изменить тайм-аут ввода-вывода, обратитесь в службу поддержки Apigee Edge .

Настройка тайм-аута ввода-вывода на маршрутизаторах

В этом разделе объясняется, как настроить тайм-аут ввода-вывода на маршрутизаторах. Тайм-аут ввода-вывода можно настроить с помощью свойства Router conf_load_balancing_load.balancing.driver.proxy.read.timeout , которое представляет значение тайм-аута ввода-вывода в секундах.

Чтобы настроить тайм-аут ввода-вывода на маршрутизаторах, выполните следующие действия:

  1. На компьютере с маршрутизатором откройте в редакторе следующий файл. Если он еще не существует, то создайте его.
    /opt/apigee/customer/application/router.properties
    

    Например, чтобы открыть файл с помощью vi , введите следующую команду:

    vi /opt/apigee/customer/application/router.properties
    
  2. Добавьте в файл properties строку в следующем формате, заменив значение time_in_seconds :
  3. 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
    
  4. Сохраните изменения.
  5. Убедитесь, что этот файл свойств принадлежит пользователю apigee , как показано ниже:
    chown apigee:apigee /opt/apigee/customer/application/router.properties
    
  6. Перезагрузите маршрутизатор, как показано ниже:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
    
  7. Если у вас несколько маршрутизаторов, повторите вышеуказанные шаги на всех маршрутизаторах.

Проверка тайм-аута ввода-вывода на маршрутизаторах

В этом разделе объясняется, как проверить, что тайм-аут ввода-вывода был успешно изменен на маршрутизаторах.

Даже если вы используете токен conf_load_balancing_load.balancing.driver.proxy.read.timeout для установки тайм-аута ввода-вывода на маршрутизаторе, вам необходимо проверить, установлено ли фактическое свойство proxy_read_timeout с новым значением.

  1. Найдите свойство proxy_read_timeout в каталоге /opt/nginx/conf.d и проверьте, установлено ли для него новое значение следующим образом:
    grep -ri "proxy_read_timeout" /opt/nginx/conf.d
    
  2. Если новое значение тайм-аута ввода-вывода успешно установлено на маршрутизаторе, приведенная выше команда покажет новое значение во всех файлах конфигурации виртуального хоста.

    Ниже приведен пример результата команды 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 секунд.

  3. Если вы все еще видите старое значение свойства proxy_read_timeout , убедитесь, что вы правильно выполнили все шаги, описанные в разделе Настройка тайм-аута ввода-вывода на маршрутизаторах . Если вы пропустили какой-либо шаг, повторите все шаги еще раз правильно.
  4. Если вы по-прежнему не можете изменить тайм-аут ввода-вывода, обратитесь в службу поддержки Apigee Edge .

Что дальше?

Узнайте о настройке тайм-аута ввода-вывода в процессоре сообщений.