Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee X.info
Видео
Посмотрите следующее видео, чтобы узнать больше о решении ошибок 503 Service Unavailable.
| Видео | Описание |
|---|---|
| Ошибка 503 «Сервис недоступен» от бэкэнд-сервера. | Узнайте о следующем:
|
Симптом
После вызова API-прокси клиентское приложение получает HTTP-ответ со статусом 503 и сообщением "Сервис недоступен" .
Сообщения об ошибках
Вы можете увидеть одно из следующих сообщений об ошибке:
HTTP/1.1 503 Service Unavailable
HTTP/1.1 503 Service Unavailable: Back-end server is at capacity
В HTTP-ответе вы также можете увидеть сообщение об ошибке, подобное следующему:
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
Примечание: Приведенные выше коды ответа и сообщения об ошибке являются лишь примерами. В некоторых случаях вы можете получить только код ответа об ошибке без какого-либо сообщения об ошибке. Формат и содержание кода ответа об ошибке и сообщения об ошибке могут различаться в зависимости от реализации серверной части.
Причины
Код состояния HTTP 503 означает, что сервер в данный момент не может обрабатывать входящие запросы. Обычно эта ошибка возникает из-за того, что сервер слишком занят или временно отключен для технического обслуживания.
Возможные причины ошибки 503 Service Unavailable :
| Причина | Описание | Кто может выполнить действия по устранению неполадок? |
|---|---|---|
| Перегруженный сервер | Серверная часть перегружена или работает на пределе своих возможностей и не может обрабатывать новые входящие запросы от клиентов. | Пользователи публичных и частных облачных сервисов на периферии сети |
| Сервер находится на техническом обслуживании. | Возможно, серверная часть временно находится на техническом обслуживании. | Пользователи публичных и частных облачных сервисов на периферии сети |
Причина: Перегрузка сервера/Сервер находится на техническом обслуживании
В Apigee Edge ошибка 503 Service Unavailable может быть возвращена с бэкэнд-сервера при следующих обстоятельствах:
- Серверная часть перегружена/занята и не может обрабатывать новые запросы.
- Серверная часть временно недоступна в связи с техническим обслуживанием.
Диагноз
Для диагностики ошибки можно использовать любой из следующих трех методов:
- инструмент трассировки
- Журналы доступа NGINX
- Прямой вызов к бэкэнд-серверу
Нажмите на вкладки ниже, чтобы узнать больше о каждом методе.
инструмент трассировки
- Включите сеанс трассировки и выполните вызов API для воспроизведения проблемы — ошибка 503 «Сервис недоступен».
- Выберите один из запросов, завершившихся неудачей, и изучите трассировку.
- Проследите за различными этапами трассировки и определите место возникновения сбоя.
- Если вы обнаружите, что целевой сервер возвращает ошибку 503, то причиной ошибки 503 является именно целевой сервер.
Вот пример скриншота трассировки, показывающий ответ 503 Service Unavailable, полученный от целевого сервера:

- На этапе "Получен ответ от целевого сервера" щелкните по разделу "Заголовки ответа" и "Содержимое ответа", чтобы проверить, содержатся ли в них полезные сведения:
- Заголовки ответа могут содержать заголовок «Сервер», указывающий, откуда был отправлен ответ с ошибкой.
- Содержимое ответа может содержать дополнительную информацию о причинах отправки целевым сервером кода ответа 503.

- Убедитесь, что ошибка 503 исходит от целевого сервера, проверив значения X-Apigee-fault-source и X-Apigee-fault-code в фазе AX (Analytics Data Recorded) в трассировке, выполнив следующие шаги:
- Нажмите на этап AX (Analytics Data Recorded), как показано на скриншоте ниже:

- Прокрутите вниз до раздела «Подробности этапа» до раздела «Заголовки ответа» и определите значения X-Apigee-fault-code и X-Apigee-fault-source, как показано ниже:

- Если значения X-Apigee-fault-source и X-Apigee-fault-code совпадают со значениями, указанными в таблице ниже, вы можете подтвердить, что ошибка 503 исходит от целевого сервера:
Заголовки ответа Ценить X-Apigee-fault-source цель X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode
- Нажмите на этап AX (Analytics Data Recorded), как показано на скриншоте ниже:
- Проверьте, используете ли вы цепочку прокси-серверов, то есть вызывает ли целевой сервер/целевая конечная точка другой прокси-сервер в Apigee. Чтобы это определить:
- Вернитесь к этапу «Запрос отправлен на целевой сервер» , нажмите кнопку «Показать Curl» и определите псевдоним хоста целевого сервера.
- Если псевдоним хоста целевого сервера указывает на псевдоним виртуального хоста, то это цепочка прокси-серверов. В этом случае необходимо повторить все описанные выше шаги для цепочки прокси-серверов, пока не будет определена точная причина ошибки 503 Service Unavailable. В таких случаях ошибка 503 Service Unavailable может возникать и в других цепочках прокси-серверов на других этапах, что можно диагностировать с помощью этого сценария действий .
- Если псевдоним хоста целевого сервера указывает на ваш бэкэнд-сервер, перейдите в раздел «Решение» .
Журналы доступа NGINX
Также можно обратиться к журналам доступа NGINX, чтобы определить, был ли отправлен код состояния 503 серверной частью. Это особенно полезно, если проблема возникала ранее или если она носит периодический характер, и вы не можете получить трассировку в пользовательском интерфейсе. Выполните следующие шаги, чтобы получить эту информацию из журналов доступа NGINX:
- Проверьте журналы доступа NGINX.
/opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log
- Найдите все ошибки 503, связанные с конкретным API-прокси, за определенный период времени (если проблема возникала ранее), или все запросы, которые по-прежнему завершаются с ошибкой 503.
- Если возникают ошибки 503, проверьте, не исходит ли ошибка от бэкэнд-сервера. Если значения X-Apigee-fault-source и X-Apigee-fault-code совпадают со значениями, указанными в таблице ниже, ошибка 503 исходит от бэкэнд-сервера:
Заголовки ответа Ценить X-Apigee-fault-source цель X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode Вот пример записи, демонстрирующей ошибку 503, вызванную целевым сервером:

- Проверьте конкретный API-прокси и убедитесь, что вы используете цепочку прокси , то есть целевой сервер/целевая конечная точка не вызывает другой прокси в Apigee. Если вы используете цепочку прокси, вам необходимо повторить все описанные выше шаги для цепочки прокси, пока вы не определите, что именно вызывает ошибку 503 Service Unavailable. В таких случаях ошибка 503 Service Unavailable может возникать и в других цепочках прокси на других этапах, что вы можете диагностировать с помощью этого сценария.
- Если вы подтвердите, что не используете цепочку прокси, и ошибка 503 возникает на вашем бэкэнд-сервере, перейдите в раздел «Решение» .
Вызов бэкэнд-сервера
Вы можете напрямую обратиться к бэкэнд-серверу и убедиться, что получаете тот же ответ 503 Service Unavailable, что и при запросе через Apigee Edge.
- Убедитесь, что у вас есть все необходимые заголовки, параметры запроса и любые учетные данные, которые необходимо передать на серверную часть в рамках запроса.
- Если серверная часть общедоступна, вы можете использовать команду curl, Postman или любой другой REST-клиент и напрямую вызывать API серверной части.
- Если доступ к серверной части возможен только из обработчиков сообщений, вы можете использовать команду curl, Postman или любой другой REST-клиент и вызывать API серверной части напрямую из обработчика сообщений.
- Убедитесь, что серверная служба действительно возвращает ошибку 503 Service Unavailable.
Разрешение
Если вы установили, что ошибка 503 возникает на бэкэнд-сервере, вы можете выполнить следующие действия для решения проблемы:
- Если проблема вызвана отключением серверной части для технического обслуживания, вы можете запустить серверную часть после окончания технического обслуживания.
- Если проблема вызвана перегрузкой серверной части, устраните её, если у вас есть доступ к серверу. В противном случае вам, возможно, потребуется обратиться за помощью к команде разработчиков серверной части.
Диагностика проблем с помощью мониторинга API.
Мониторинг API позволяет быстро выявлять проблемные области для диагностики ошибок, проблем с производительностью и задержкой, а также определять их источник, например, приложения разработчиков, API-прокси, целевые серверы или API-платформу.
Рассмотрим пример сценария , демонстрирующий, как устранять ошибки 5xx в ваших API с помощью мониторинга API. Например, вы можете настроить оповещение, которое будет отправляться, когда количество ошибок messaging.adaptors.http.flow.ErrorResponseCode превысит определенный порог.
Необходимо собрать диагностическую информацию.
Если проблема сохраняется даже после выполнения вышеуказанных инструкций, пожалуйста, соберите следующую диагностическую информацию, а затем свяжитесь со службой поддержки Apigee .
Если вы являетесь пользователем общедоступного облака, предоставьте следующую информацию:
- Название организации
- Название среды
- Имя API-прокси
- Выполните команду curl для воспроизведения ошибки 503.
- Файл трассировки, содержащий запросы с ошибкой 503 Service Unavailable.
- Если ошибки 503 в настоящее время не возникают, укажите период времени с информацией о часовом поясе, когда ошибки 503 возникали в прошлом.
Если вы являетесь пользователем частного облака, предоставьте следующую информацию:
- Полное сообщение об ошибке, полученное для неудачных запросов.
- Название организации, имя среды и имя прокси-сервера API, для которых наблюдаются ошибки 503.
- Пакет API-прокси.
- Файл трассировки, содержащий запросы с ошибкой 503 Service Unavailable.
- Журналы доступа NGINX.
/opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log
- Журналы обработки сообщений.
/opt/apigee/var/log/edge-message-processor/logs/system.log
- Период времени с указанием часового пояса, когда возникали ошибки 503.