Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X. Информация
Видео
Чтобы узнать больше об ошибках 503, посмотрите следующие видео:
| Видео | Описание |
|---|---|
| Как устранить ошибку 503 "Сервис недоступен" (NoActiveTargets) | Узнайте больше о следующих темах:
|
Symptom
Клиентское приложение получает код статуса 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 |
| Ошибки подключения из-за неправильного разрешения DNS | При DNS-преобразовании целевого сервера были получены неверные IP-адреса, которые привели к ошибкам подключения. | Пользователи Edge Private Cloud |
| Ошибки подключения | Проблемы с сетью или подключением не позволяют клиенту подключиться к серверу. | Пользователи Edge Private Cloud |
| Неправильный псевдоним целевого хоста | Указанный хост целевого сервера неправильный или содержит нежелательные символы (например, пробел). | Пользователи общедоступного и частного облака Edge |
| Сбои рукопожатия SSL | Не удалось выполнить рукопожатие TLS/SSL между клиентом и сервером. | Пользователи общедоступного и частного облака Edge |
| Сбои при проверке работоспособности | Проверки состояния, настроенные для проверки состояния целевого сервера, могут не выполняться по какой-либо причине. | Пользователи Edge Private Cloud |
Причина: целевой сервер отключен
Если все целевые серверы, указанные в конфигурации целевой конечной точки, отключены, вы получите ответ 503 Service Unavailable с кодом ошибки NoActiveTargets.
диагностика;
- Определите название целевого сервера, используемого в определенной конфигурации целевой конечной точки неработающего прокси API, одним из следующих способов:
- Если конечная точка одна, проверьте ее.
- Если целевых конечных точек несколько и вы не знаете, на какой из них отключен целевой сервер, выполните следующие действия:
- Включите сеанс трассировки, выполните вызов API и воспроизведите проблему "503 Service Unavailable" (Сервис недоступен).
- В трассировке перейдите к разделу Target Request Flow Started (Начало потока целевого запроса) и определите название целевой конечной точки, как показано ниже.
- Определив целевую конечную точку, получите целевое имя сервера, используемое в конфигурации целевой конечной точки, как показано в примере ниже:
<TargetEndpoint name="default">> <HTTPTargetConnection> <LoadBalancer> <Server name="demo-target" /> </LoadBalancer> <Path>/test</Path> </HTTPTargetConnection> </TargetEndpoint>В примере выше используется один целевой сервер с названием demo-target.
- Получите определение для каждого целевого сервера, используемого в целевой конечной точке, с помощью интерфейса Edge или вызова Edge API.
Интерфейс Edge
Чтобы посмотреть определение в интерфейсе Edge:
- Перейдите в раздел Администратор > Среды > Целевые серверы.
- Выберите среду, в которой возникает ошибка.
- Найдите целевой сервер по названию, чтобы получить его определение.
Например, введите название целевого сервера
demo-target, и вы увидите его определение, как показано ниже:
Обратите внимание, что целевой сервер demo-target имеет псевдоним хоста, номер порта и включен SSL. Однако целевой сервер отключен , о чем свидетельствует элемент Включено, выделенный серым цветом.
Edge API
Чтобы получить определение с помощью Edge API:
Используйте Get TargetServer API, чтобы получить определение целевого сервера.
Выходные данные определения целевого сервера
<TargetServer name="demo-target"> <Host>demo-target.apigee.net</Host> <Port>443</Port> <IsEnabled>false</IsEnabled> <SSLInfo> <Enabled>true</Enabled> </SSLInfo> </TargetServer>Выходные данные API Apigee показывают, что целевой сервер demo-target отключен, поскольку для элемента IsEnabled задано значение false.
Поскольку целевой сервер отключен, Message Processor немедленно отправит клиенту ответ 503 Service Unavailable с кодом ошибки NoActiveTargets.

Разрешение
Убедитесь, что целевые серверы, используемые в конфигурации целевой конечной точки вашего прокси API, всегда включены.
Интерфейс Edge
- Перейдите в раздел Администратор > Среды > Целевые серверы.
- Выберите среду, в которой возникает ошибка.
- Найдите нужный сервер, чтобы узнать его определение.
- Выберите целевой сервер и нажмите Изменить.
- Установите флажок Включено.
- Нажмите Обновить.
Edge API
Используйте Update a Target Server API, чтобы обновить определение целевого сервера и убедиться, что в полезной нагрузке запроса API параметр IsEnabled имеет значение true, как показано ниже:
<TargetServer name="demo-target">
<Host>demo-target.apigee.net</Host>
<Port>443</Port>
<IsEnabled>true</IsEnabled>
<SSLInfo>
<Enabled>true</Enabled>
</SSLInfo>
</TargetServer>
Если проблема не устранена, перейдите к разделу Сбор диагностической информации.
Как диагностировать проблемы с помощью мониторинга API
API Monitoring позволяет быстро выявлять проблемные области, чтобы диагностировать ошибки, проблемы с производительностью и задержками, а также их источник, например приложения разработчиков, прокси API, целевые серверы или платформу API.
Пошаговое описание примера, в котором показано, как устранять ошибки 5xx в API с помощью API Monitoring. Например, вы можете настроить оповещение, которое будет срабатывать, когда количество messaging.adaptors.http.flow.NoActiveTargets
ошибок превысит определенный порог.
Необходимо собрать диагностическую информацию
Если проблема не устранена, соберите следующую диагностическую информацию. Обратитесь в службу поддержки Apigee и предоставьте им следующую информацию:
- Если вы используете общедоступное облако, предоставьте следующую информацию:
- Название организации
- Название среды
- Название прокси API
- Полная команда curl для воспроизведения ошибки
- Файл трассировки, содержащий запросы с ошибкой "503: сервис недоступен" и кодом ошибки NoActiveTargets
- Если вы используете частное облако, предоставьте следующую информацию:
- Полное сообщение об ошибке
- Название среды
- Пакет прокси API
- Файл трассировки, содержащий запросы с ошибкой "503: сервис недоступен" и кодом ошибки NoActiveTargets
- Журналы доступа NGINX
(
/opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log) - Журналы обработчика сообщений
(
/opt/apigee/var/log/edge-message-processor/logs/system.log)