Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X. информация
Видео
Дополнительные сведения об ошибках 503 см. в следующих видеороликах:
Видео | Описание |
---|---|
Устранение и устранение неполадок 503 Служба недоступна — NoActiveTargets | Узнайте о следующем:
|
Симптом
Клиентское приложение получает код состояния ответа HTTP 503 с сообщением «Служба недоступна» и кодом ошибки NoActiveTargets для запросов прокси-сервера API.
Сообщение об ошибке
Вы увидите следующий ответ об ошибке:
HTTP/1.1 503 Service Unavailable
В ответе HTTP вы увидите следующее сообщение об ошибке:
{ "fault": { "faultstring": "The Service is temporarily unavailable", "detail": { "errorcode": "messaging.adaptors.http.flow.NoActiveTargets" } } }
Возможные причины
HTTP-ответ 503 Service Unavailable с кодом ошибки NoActiveTargets обычно наблюдается, когда вы используете один или несколько целевых серверов в конфигурации целевой конечной точки в вашем прокси-сервере API.
В следующей таблице перечислены возможные причины ответа 503 Service Unavailable с кодом ошибки NoActiveTargets :
Причина | Описание | Кто может выполнять действия по устранению неполадок |
---|---|---|
Целевой сервер отключен | Целевой сервер, указанный в конфигурации целевой конечной точки, отключен. | Пользователи Edge Public и Private Cloud |
Ошибки подключения из-за неправильного разрешения DNS | Разрешение DNS целевого сервера привело к получению неверных IP-адресов, что привело к ошибкам подключения. | Пользователи Edge Private Cloud |
Ошибки подключения | Проблемы с сетью или подключением не позволяют клиенту подключиться к серверу. | Пользователи Edge Private Cloud |
Неправильный псевдоним целевого хоста | Указанный хост целевого сервера неверен или содержит нежелательные символы (например, пробел). | Пользователи Edge Public и Private Cloud |
Сбои SSL-квитирования | Не удалось установить соединение TLS/SSL между клиентом и сервером. | Пользователи Edge Public и Private Cloud |
Сбои проверки работоспособности | Проверки работоспособности, настроенные для проверки работоспособности целевого сервера, по какой-либо причине могут завершиться неудачей. | Пользователи Edge Private Cloud |
Причина: целевой сервер отключен.
Если все целевые серверы, указанные в конфигурации целевой конечной точки, отключены, вы получите ответ 503 Service Unavailable с кодом ошибки NoActiveTargets.
Диагностика
- Определите имя целевого сервера, используемого в конкретной конфигурации целевой конечной точки неисправного прокси-сервера API, одним из следующих способов:
- Если есть одна целевая конечная точка, проверьте эту конкретную целевую конечную точку.
- Если существует несколько целевых конечных точек и вы не уверены, какая из них отключила целевой сервер, выполните следующие действия:
- Включите сеанс трассировки , выполните вызов API и воспроизведите проблему — 503 Служба недоступна.
- В трассировке перейдите к Target Request Flow Started и определите имя целевой конечной точки, как показано ниже:
- После того как вы определили целевую конечную точку, получите используемое имя целевого сервера из конфигурации целевой конечной точки, как показано в примере ниже:
<TargetEndpoint name="default">> <HTTPTargetConnection> <LoadBalancer> <Server name="demo-target" /> </LoadBalancer> <Path>/test</Path> </HTTPTargetConnection> </TargetEndpoint>
В приведенном выше примере имеется один целевой сервер с именем demo-target .
- Получите определение для каждого целевого сервера, используемого в целевой конечной точке, с помощью пользовательского интерфейса Edge или вызова API Edge.
Пограничный интерфейс
Чтобы получить определение с помощью пользовательского интерфейса Edge:
- Перейдите в «Администратор» > «Среды» > «Целевые серверы» .
- Выберите конкретную среду, в которой вы видите сбой.
- Найдите конкретное имя целевого сервера, чтобы получить определение целевого сервера.
Например, введите имя целевого сервера
demo-target
, и вы увидите его определение, как показано ниже:Обратите внимание, что демонстрационная цель целевого сервера имеет псевдоним хоста, номер порта и включен SSL. Однако сам целевой сервер отключен, на что указывает элемент ENABLED , выделенный серым цветом.
Пограничный API
Чтобы получить определение с помощью Edge API:
Используйте API Get TargetServer, чтобы получить определение целевого сервера.
Вывод определения целевого сервера
<TargetServer name="demo-target"> <Host>demo-target.apigee.net</Host> <Port>443</Port> <IsEnabled>false</IsEnabled> <SSLInfo> <Enabled>true</Enabled> </SSLInfo> </TargetServer>
Вывод API Apigee показывает, что демонстрационная цель целевого сервера отключена , поскольку для элемента IsEnabled установлено значение false.
Поскольку целевой сервер отключен, процессор сообщений немедленно отправит клиенту сообщение 503 Service Unavailable с кодом ошибки NoActiveTargets .
Разрешение
Убедитесь, что определенные целевые серверы, используемые в конфигурации целевой конечной точки вашего прокси-сервера API, всегда включены.
Пограничный интерфейс
- Перейдите в «Администратор» > «Среды» > «Целевые серверы» .
- Выберите конкретную среду, в которой вы видите сбой.
- Найдите конкретное имя целевого сервера, чтобы получить его определение.
- Выберите конкретный целевой сервер и нажмите « Изменить» .
- Установите флажок Включено .
- Нажмите Обновить .
Пограничный API
Используйте API обновления целевого сервера , чтобы обновить определение целевого сервера и убедиться, что для параметра IsEnabled установлено значение true в полезных данных запроса API, как показано ниже:
<TargetServer name="demo-target"> <Host>demo-target.apigee.net</Host> <Port>443</Port> <IsEnabled>true</IsEnabled> <SSLInfo> <Enabled>true</Enabled> </SSLInfo> </TargetServer>
Если проблема не устранена, перейдите к разделу «Необходимо собрать диагностическую информацию» .
Диагностика проблем с помощью мониторинга API
Мониторинг API позволяет быстро изолировать проблемные области для диагностики ошибок, проблем с производительностью и задержкой, а также их источников, таких как приложения для разработчиков, прокси-серверы API, целевые серверные части или платформа API.
Ознакомьтесь с примером сценария , который демонстрирует, как устранять проблемы 5xx с вашими API с помощью мониторинга API. Например, вы можете настроить оповещение, которое будет уведомляться, когда количество ошибок messaging.adaptors.http.flow.NoActiveTargets
превышает определенный порог.
Необходимо собрать диагностическую информацию
Если проблема не устранена даже после выполнения приведенных выше инструкций, соберите следующую диагностическую информацию. Свяжитесь со службой поддержки Apigee и поделитесь ими:
- Если вы являетесь пользователем Public Cloud, предоставьте следующую информацию:
- Название организации
- Имя среды
- Имя прокси API
- Завершите команду Curl, чтобы воспроизвести ошибку.
- Файл трассировки, содержащий запросы с кодом 503 Service Unavailable и кодом ошибки NoActiveTargets.
- Если вы являетесь пользователем частного облака, предоставьте следующую информацию:
- Обнаружено полное сообщение об ошибке
- Имя среды
- Пакет API-прокси
- Файл трассировки, содержащий запросы с кодом 503 Service Unavailable и кодом ошибки NoActiveTargets.
- Журналы доступа NGINX
(
/opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log
/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log) - Журналы процессора сообщений
(
/opt/apigee/var/log/edge-message-processor/logs/system.log
)