503 Служба недоступна — внутренний сервер

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

Видео

Посмотрите следующее видео, чтобы узнать больше об устранении ошибки 503 Service Unavailable.

Видео Описание
Ошибка 503 Служба недоступна на внутреннем сервере Узнайте о следующем:
  • Общие сведения об ошибке 503 Service Unavailable в Apigee Edge
  • Устранение и устранение неполадок службы 503 в режиме реального времени, недоступной на внутреннем сервере

Симптом

Клиентское приложение получает статус ответа HTTP 503 с сообщением «Служба недоступна» после вызова прокси-сервера API.

Сообщения об ошибках

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

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 «Служба недоступна» :

Причина Описание Кто может выполнять действия по устранению неполадок
Перегруженный сервер Внутренний сервер перегружен или превышает свои возможности и не может обрабатывать новые входящие клиентские запросы. Пользователи Edge Public и Private Cloud
Сервер на обслуживании Возможно, внутренний сервер временно находится на обслуживании. Пользователи Edge Public и Private Cloud

Причина: перегруженный сервер/сервер на обслуживании.

В Apigee Edge ошибка 503 Service Unavailable может быть возвращена с внутреннего сервера при любом из следующих обстоятельств:

  • Внутренний сервер перегружен/занят и не может обрабатывать новые запросы.
  • Внутренний сервер временно отключен в связи с техническим обслуживанием.

Диагностика

Для диагностики ошибки можно использовать любой из следующих трех методов:

  • Инструмент трассировки
  • Журналы доступа NGINX
  • Прямой вызов на внутренний сервер

Нажмите на вкладки ниже, чтобы узнать о каждом методе.

Инструмент трассировки

  1. Включите сеанс трассировки и выполните вызов API, чтобы воспроизвести проблему — 503 Служба недоступна.
  2. Выберите один из неудачных запросов и проверьте трассировку.
  3. Перемещайтесь по различным этапам трассировки и найдите место, где произошел сбой.
  4. Если вы обнаружите, что ошибка 503 возвращается в качестве ответа от целевого сервера, причиной ошибки 503 является целевой сервер.

    Вот пример снимка экрана трассировки, показывающий ответ 503 Service Unavailable, полученный от целевого сервера:

  5. Щелкните этап «Ответ, полученный от целевого сервера» и просмотрите разделы «Заголовки ответов» и «Содержимое ответа», чтобы увидеть, есть ли в них какая-либо полезная информация:
    • Заголовки ответов могут содержать заголовок сервера, который указывает, откуда был отправлен ответ об ошибке.
    • Содержимое ответа может содержать дополнительную информацию о том, почему целевой сервер отправил код ответа 503.
  6. Подтвердите, что ошибка 503 исходит от целевого сервера, проверив значения X-Apigee-fault-source и X-Apigee-fault-code на этапе AX (запись аналитических данных) в трассировке, выполнив действия, указанные ниже:
    1. Нажмите Фазу AX (запись аналитических данных), как показано на снимке экрана ниже:
    2. Прокрутите страницу «Сведения о фазе» до раздела «Заголовки ответов» и определите значения X-Apigee-fault-code и X-Apigee-fault-source, как показано ниже:
    3. Если значения X-Apigee-fault-source и X-Apigee-fault-code соответствуют значениям, показанным в таблице ниже, вы можете подтвердить, что ошибка 503 исходит с целевого сервера:
      Заголовки ответов Ценить
      X-Apigee-источник-ошибки цель
      X-Apigee-код неисправности messages.adaptors.http.flow.ErrorResponseCode
  7. Проверьте, используете ли вы цепочку прокси-серверов, т. е. вызывает ли целевой сервер/целевая конечная точка другой прокси-сервер в Apigee. Чтобы определить это:
    1. Вернитесь к этапу «Запрос отправлен на целевой сервер» , нажмите кнопку «Показать завиток» и определите псевдоним хоста целевого сервера.
    2. Если псевдоним хоста целевого сервера указывает на псевдоним виртуального хоста, то это цепочка прокси. В этом случае вам необходимо повторить все вышеперечисленные шаги для связанного прокси-сервера, пока вы не определите, что на самом деле вызывает ошибку 503 Service Unavailable. В этих случаях ошибка 503 Service Unavailable может возникать и в других связанных прокси-серверах на других этапах, что можно диагностировать с помощью этой инструкции .
    3. Если псевдоним хоста целевого сервера указывает на ваш внутренний сервер, перейдите к разделу «Разрешение» .

Журналы доступа NGINX

Вы также можете обратиться к журналам lccess NGINX, чтобы определить, был ли код состояния 503 отправлен внутренним сервером. Это особенно полезно, если проблема возникала в прошлом или если проблема носит периодический характер и вы не можете отследить ее в пользовательском интерфейсе. Используйте следующие шаги, чтобы получить эту информацию из журналов доступа NGINX:

  1. Проверьте журналы доступа NGINX.
    /opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log
  2. Найдите любые ошибки 503 для конкретного прокси-сервера API в течение определенного периода времени (если проблема возникла в прошлом) или любые запросы, которые все еще завершаются с ошибкой 503.
  3. Если есть ошибки 503, проверьте, исходит ли ошибка с внутреннего сервера. Если значения X-Apigee-fault-source и X-Apigee-fault-code соответствуют значениям, показанным в таблице ниже, ошибка 503 исходит от внутреннего сервера:
    Заголовки ответов Ценить
    X-Apigee-источник-ошибки цель
    X-Apigee-код неисправности messages.adaptors.http.flow.ErrorResponseCode

    Вот пример записи, показывающий ошибку 503, вызванную целевым сервером:

  4. Просмотрите конкретный прокси-сервер API и убедитесь, что вы используете цепочку прокси-серверов , т. е. если целевой сервер/целевая конечная точка не вызывает другой прокси-сервер в Apigee. Если вы используете цепочку прокси-серверов, вам необходимо повторить все вышеперечисленные шаги для связанного прокси-сервера, пока вы не определите, что на самом деле вызывает ошибку 503 Service Unavailable. В этих случаях ошибка 503 Service Unavailable может возникать и в других связанных прокси-серверах на других этапах, что вы можете диагностировать с помощью этого руководства.
  5. Если вы подтверждаете, что не используете цепочку прокси-серверов и ошибка 503 исходит от вашего внутреннего сервера, перейдите к разделу «Разрешение» .

Вызов внутреннего сервера

Вы можете напрямую позвонить на внутренний сервер и убедиться, что вы получаете тот же ответ 503 Service Unavailable, который был получен, когда запрос был сделан через Apigee Edge.

  1. Убедитесь, что у вас есть все необходимые заголовки, параметры запроса и все учетные данные, которые необходимо передать на внутренний сервер как часть запроса.
  2. Если серверная служба общедоступна, вы можете использовать команду Curl, Postman или любой другой клиент REST и напрямую вызвать API внутреннего сервера.
  3. Если внутренний сервер доступен только из процессоров сообщений, вы можете использовать команду Curl, Postman или любой другой клиент REST и вызвать API внутреннего сервера непосредственно из процессора сообщений.
  4. Убедитесь, что серверная служба действительно возвращает ошибку 503 Service Unavailable.

Разрешение

Если вы убедитесь, что ошибка 503 исходит от внутреннего сервера, вы можете сделать следующее, чтобы решить проблему:

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

Диагностика проблем с помощью мониторинга API

Мониторинг API позволяет быстро изолировать проблемные области для диагностики ошибок, проблем с производительностью и задержкой, а также их источников, таких как приложения для разработчиков, прокси-серверы API, целевые серверные части или платформа API.

Ознакомьтесь с примером сценария , который демонстрирует, как устранять проблемы 5xx с вашими API с помощью мониторинга API. Например, вы можете настроить оповещение, которое будет уведомляться, когда количество ошибок messages.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.