Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X. информация
Симптом
Клиентское приложение получает код состояния HTTP 502
с сообщением Bad Gateway
в качестве ответа на вызовы API.
Код состояния HTTP 502
означает, что клиент не получает действительный ответ от внутренних серверов, которые должны фактически выполнить запрос.
Сообщения об ошибках
Клиентское приложение получает следующий код ответа:
HTTP/1.1 502 Bad Gateway
Кроме того, вы можете увидеть следующее сообщение об ошибке:
{ "fault": { "faultstring": "Unexpected EOF at target", "detail": { "errorcode": "messaging.adaptors.http.UnexpectedEOFAtTarget" } } }
Возможные причины
Одной из типичных причин 502 Bad Gateway Error
является Unexpected EOF
, которая может быть вызвана следующими причинами:
Причина | Подробности | Шаги, указанные для |
---|---|---|
Неправильно настроен целевой сервер | Целевой сервер неправильно настроен для поддержки соединений TLS/SSL. | Пользователи Edge Public и Private Cloud |
EOFException с внутреннего сервера | Внутренний сервер может внезапно отправить EOF. | Только для пользователей Edge Private Cloud |
Неправильно настроен таймаут поддержания активности | Таймауты поддержания активности настроены неправильно на Apigee и внутреннем сервере. | Пользователи Edge Public и Private Cloud |
Общие этапы диагностики
Для диагностики ошибки можно использовать любой из следующих методов:
API-мониторинг
Чтобы диагностировать ошибку с помощью мониторинга API:
Используя мониторинг API, вы можете исследовать ошибки 502
, выполнив действия, описанные в разделе «Исследование проблем» . То есть:
- Перейдите на панель расследования .
- Выберите код состояния в раскрывающемся меню и убедитесь, что выбран правильный период времени, когда произошла ошибка
502
. - Щелкните поле в матрице, если вы видите большое количество ошибок
502
. - С правой стороны нажмите «Просмотреть журналы» для ошибок
502
, которые будут выглядеть примерно так: - Источник неисправности является
target
- Код неисправности —
messaging.adaptors.http.UnexpectedEOFAtTarget
Здесь мы можем увидеть следующую информацию:
Это указывает на то, что ошибка 502
вызвана целью из-за неожиданного EOF.
Кроме того, запишите Request Message ID
для ошибки 502
для дальнейшего изучения.
Инструмент трассировки
Чтобы диагностировать ошибку с помощью инструмента трассировки:
- Включите сеанс трассировки и выполните вызов API, чтобы воспроизвести проблему
502 Bad Gateway
. - Выберите один из неудачных запросов и проверьте трассировку.
- Перемещайтесь по различным этапам трассировки и найдите место, где произошел сбой.
Вы должны увидеть ошибку после отправки запроса на целевой сервер, как показано ниже:
Определите значение X-Apigee.fault-source и X-Apigee.fault-code на этапе AX (запись аналитических данных) трассировки.
Если значения X-Apigee.fault-source и X-Apigee.fault-code соответствуют значениям, показанным в следующей таблице, вы можете подтвердить, что ошибка
502
исходит от целевого сервера:Заголовки ответов Ценить X-Apigee.fault-источник target
X-Apigee.fault-код messaging.adaptors.http.flow.UnexpectedEOFAtTarget
Кроме того, запишите
X-Apigee.Message-ID
для ошибки502
для дальнейшего изучения.
Журналы доступа NGINX
Чтобы диагностировать ошибку с помощью NGINX:
Вы также можете обратиться к журналам доступа NGINX, чтобы определить причину кода состояния 502
. Это особенно полезно, если проблема возникала в прошлом или если проблема носит периодический характер и вы не можете отследить ее в пользовательском интерфейсе. Используйте следующие шаги, чтобы определить эту информацию из журналов доступа NGINX:
- Проверьте журналы доступа NGINX.
/opt/apigee/var/log/edge-router/nginx/ ORG ~ ENV . PORT# _access_log
- Найдите любые ошибки
502
для конкретного прокси-сервера API в течение определенного периода времени (если проблема возникла в прошлом) или любые запросы, которые по-прежнему завершаются с ошибкой502
. - Если есть какие-либо ошибки
502
, проверьте, не вызвана ли ошибка тем, что цель отправляетUnexpected EOF
. Если значения X-Apigee.fault-source и X-Apigee.fault-code соответствуют значениям, показанным в таблице ниже, ошибка502
вызвана тем, что цель неожиданно закрывает соединение:Заголовки ответов Ценить X-Apigee.fault-источник target
X-Apigee.fault-код messaging.adaptors.http.flow.UnexpectedEOFAtTarget
Вот пример записи, показывающий ошибку
502
, вызванную целевым сервером:
Кроме того, запишите идентификаторы сообщений для ошибок 502
для дальнейшего изучения.
Причина: неправильно настроен целевой сервер.
Целевой сервер неправильно настроен для поддержки соединений TLS/SSL.
Диагностика
- Используйте мониторинг API , инструмент трассировки или журналы доступа NGINX, чтобы определить идентификатор сообщения, код ошибки и источник ошибки
502
. - Включите трассировку в пользовательском интерфейсе для затронутого API.
- Если трассировка неудачного запроса API показывает следующее:
- Ошибка
502 Bad Gateway
отображается сразу после запуска запроса целевого потока. - Класс
error.class
отображаетmessaging.adaptors.http.UnexpectedEOF.
Тогда весьма вероятно, что эта проблема вызвана неправильной конфигурацией целевого сервера.
- Ошибка
- Получите определение целевого сервера с помощью вызова API управления Edge:
- Если вы являетесь пользователем публичного облака , используйте этот API:
curl -v https://api.enterprise.apigee.com/v1/organizations/<orgname>/environments/<envname>/targetservers/<targetservername> -u <username>
- Если вы являетесь пользователем частного облака , используйте этот API:
curl -v http://<management-server-host>:<port #>/v1/organizations/<orgname>/environments/<envname>/targetservers/<targetservername> -u <username>
Пример ошибочного определения
TargetServer
:<TargetServer name="target1"> <Host>mocktarget.apigee.net</Host> <Port>443</Port> <IsEnabled>true</IsEnabled> </TargetServer >
- Если вы являетесь пользователем публичного облака , используйте этот API:
Иллюстрированное определение
TargetServer
является примером одной из типичных неправильных конфигураций, которая объясняется следующим образом:Предположим, что целевой
mocktarget.apigee.net
настроен на прием безопасных (HTTPS) подключений через порт443
. Однако если вы посмотрите на определение целевого сервера, то не увидите других атрибутов/флагов, указывающих на то, что он предназначен для безопасных соединений. Это приводит к тому, что Edge обрабатывает запросы API, идущие к конкретному целевому серверу, как HTTP-запросы (незащищенные) . Таким образом, Edge не будет инициировать процесс установления связи SSL с этим целевым сервером.Поскольку целевой сервер настроен на прием только запросов HTTPS (SSL) на
443
, он отклонит запрос от Edge или закроет соединение. В результате вы получаете ошибкуUnexpectedEOFAtTarget
в процессоре сообщений. Процессор сообщений отправит клиенту502 Bad Gateway
в ответ.
Разрешение
Всегда проверяйте, что целевой сервер настроен правильно в соответствии с вашими требованиями.
В приведенном выше примере, если вы хотите отправлять запросы к безопасному (HTTPS/SSL) целевому серверу, вам необходимо включить атрибуты SSLInfo
с enabled
флагом, установленным в значение true
. Хотя разрешено добавлять атрибуты SSLInfo
для целевого сервера в само определение целевой конечной точки, во избежание путаницы рекомендуется добавлять атрибуты SSLInfo
как часть определения целевого сервера.
- Если серверной службе требуется односторонняя связь SSL , то:
- Вам необходимо включить TLS/SSL в определении
TargetServer
, включив атрибутыSSLInfo
, где для флагаenabled
установлено значение true, как показано ниже:<TargetServer name="mocktarget"> <Host>mocktarget.apigee.net</Host> <Port>443</Port> <IsEnabled>true</IsEnabled> <SSLInfo> <Enabled>true</Enabled> </SSLInfo> </TargetServer>
- Если вы хотите проверить сертификат целевого сервера в Edge, нам также необходимо включить хранилище доверенных сертификатов (содержащее сертификат целевого сервера), как показано ниже:
<TargetServer name="mocktarget"> <Host>mocktarget.apigee.net</Host> <Port>443</Port> <IsEnabled>true</IsEnabled> <SSLInfo> <Ciphers/> <ClientAuthEnabled>false</ClientAuthEnabled> <Enabled>true</Enabled> <IgnoreValidationErrors>false</IgnoreValidationErrors> <Protocols/> <TrustStore>mocktarget-truststore</TrustStore> </SSLInfo> </TargetServer>
- Вам необходимо включить TLS/SSL в определении
- Если серверной службе требуется двусторонняя связь SSL , то:
- Вам необходимо иметь атрибуты
SSLInfo
с флагамиClientAuthEnabled
,Keystore
,KeyAlias
иTruststore
, установленными соответствующим образом, как показано ниже:<TargetServer name="mocktarget"> <IsEnabled>true</IsEnabled> <Host>www.example.com</Host> <Port>443</Port> <SSLInfo> <Ciphers/> <ClientAuthEnabled>true</ClientAuthEnabled> <Enabled>true</Enabled> <IgnoreValidationErrors>false</IgnoreValidationErrors> <KeyAlias>keystore-alias</KeyAlias> <KeyStore>keystore-name</KeyStore> <Protocols/> <TrustStore>truststore-name</TrustStore> </SSLInfo> </TargetServer >
- Вам необходимо иметь атрибуты
Ссылки
Балансировка нагрузки между внутренними серверами
Причина: EOFException на внутреннем сервере.
Внутренний сервер может внезапно отправить EOF (конец файла).
Диагностика
- Используйте мониторинг API , инструмент трассировки или журналы доступа NGINX, чтобы определить идентификатор сообщения, код ошибки и источник ошибки
502
. - Проверьте журналы процессора сообщений (
/opt/apigee/var/log/edge-message-processor/logs/system.log
) и выполните поиск, чтобы узнать, есть ли у васeof unexpected
для конкретного API или у вас есть уникальныйmessageid
для API. запрос, то вы можете найти его.Пример трассировки стека исключений из журнала процессора сообщений
"message": "org:myorg env:test api:api-v1 rev:10 messageid:rrt-1-14707-63403485-19 NIOThread@0 ERROR HTTP.CLIENT - HTTPClient$Context$3.onException() : SSLClientChannel[C:193.35.250.192:8443 Remote host:0.0.0.0:50100]@459069 useCount=6 bytesRead=0 bytesWritten=755 age=40107ms lastIO=12832ms .onExceptionRead exception: {} java.io.EOFException: eof unexpected at com.apigee.nio.channels.PatternInputChannel.doRead(PatternInputChannel.java:45) ~[nio-1.0.0.jar:na] at com.apigee.nio.channels.InputChannel.read(InputChannel.java:103) ~[nio-1.0.0.jar:na] at com.apigee.protocol.http.io.MessageReader.onRead(MessageReader.java:79) ~[http-1.0.0.jar:na] at com.apigee.nio.channels.DefaultNIOSupport$DefaultIOChannelHandler.onIO(NIOSupport.java:51) [nio-1.0.0.jar:na] at com.apigee.nio.handlers.NIOThread.run(NIOThread.java:123) [nio-1.0.0.jar:na]"
В приведенном выше примере вы можете видеть, что
java.io.EOFException: eof unexpected
произошла, когда процессор сообщений пытается прочитать ответ от внутреннего сервера. Это исключение указывает на конец файла (EOF) или на неожиданное достижение конца потока.То есть процессор сообщений отправил запрос API на внутренний сервер и ждал или читал ответ. Однако внутренний сервер внезапно разорвал соединение до того, как процессор сообщений получил ответ или смог прочитать полный ответ.
- Проверьте журналы внутреннего сервера и проверьте, нет ли каких-либо ошибок или информации, которая могла бы привести к внезапному прекращению соединения серверным сервером. Если вы обнаружите какие-либо ошибки/информацию, перейдите к разделу «Решение» и исправьте проблему соответствующим образом на своем внутреннем сервере.
- Если вы не обнаружили никаких ошибок или информации на своем внутреннем сервере, соберите выходные данные
tcpdump
на процессорах сообщений:- Если хост вашего внутреннего сервера имеет один IP-адрес, используйте следующую команду:
tcpdump -i any -s 0 host IP_ADDRESS -w FILE_NAME
- Если ваш внутренний сервер имеет несколько IP-адресов, используйте следующую команду:
tcpdump -i any -s 0 host HOSTNAME -w FILE_NAME
Обычно эта ошибка возникает из-за того, что внутренний сервер отвечает
[FIN,ACK]
как только процессор сообщений отправляет запрос на внутренний сервер.
- Если хост вашего внутреннего сервера имеет один IP-адрес, используйте следующую команду:
Рассмотрим следующий пример
tcpdump
.Пример
tcpdump
, полученный при возникновении502 Bad Gateway Error
(UnexpectedEOFAtTarget
).- Из вывода TCPDump вы заметите следующую последовательность событий:
- В пакете
985
процессор сообщений отправляет запрос API на внутренний сервер. - В пакете
986
внутренний сервер немедленно отвечает[FIN,ACK]
. - В пакете
987
процессор сообщений отвечает[FIN,ACK]
внутреннему серверу. - В конце концов соединения закрываются с помощью
[ACK]
и[RST]
с обеих сторон. - Поскольку внутренний сервер отправляет
[FIN,ACK]
, вы получаете исключениеjava.io.EOFException: eof unexpected
исключение в процессоре сообщений.
- В пакете
- Это может произойти, если на внутреннем сервере возникла проблема с сетью. Привлеките команду сетевых операций для дальнейшего изучения этой проблемы.
Разрешение
Исправьте проблему на внутреннем сервере соответствующим образом.
Если проблема не устранена и вам нужна помощь в устранении 502 Bad Gateway Error
или вы подозреваете, что это проблема в Edge, обратитесь в службу поддержки Apigee Edge .
Причина: неправильно настроен тайм-аут поддержания активности.
Прежде чем диагностировать, является ли это причиной ошибок 502
, ознакомьтесь со следующими понятиями.
Постоянные соединения в Apigee
Apigee по умолчанию (и в соответствии со стандартом HTTP/1.1) использует постоянные соединения при обмене данными с целевым внутренним сервером. Постоянные соединения могут повысить производительность, позволяя повторно использовать уже установленное соединение TCP и (если применимо) TLS/SSL, что снижает затраты на задержку. Продолжительность, в течение которой соединение должно сохраняться, контролируется с помощью свойства Keepalive Timeout ( keepalive.timeout.millis
).
И внутренний сервер, и процессор сообщений Apigee используют тайм-ауты поддержания активности, чтобы поддерживать открытые соединения друг с другом. Если в течение тайм-аута поддержания активности данные не получены, внутренний сервер или процессор сообщений может закрыть соединение с другим.
Прокси-серверы API, развернутые на процессоре сообщений в Apigee, по умолчанию имеют время ожидания активности, равное 60s
, если оно не переопределено. Если в течение 60s
данные не будут получены, Apigee закроет соединение с внутренним сервером. Внутренний сервер также будет поддерживать тайм-аут активности, и по его истечении внутренний сервер закроет соединение с процессором сообщений.
Последствия неправильной конфигурации тайм-аута поддержания активности
Если Apigee или внутренний сервер настроены с неправильными тайм-аутами поддержания активности, это приводит к состоянию гонки, из-за которого внутренний сервер отправляет неожиданный End Of File (FIN)
в ответ на запрос ресурса.
Например, если тайм-аут поддержания активности настроен в прокси-сервере API или процессоре сообщений со значением, большим или равным тайм-ауту вышестоящего внутреннего сервера, может возникнуть следующее состояние гонки. То есть, если процессор сообщений не получает никаких данных до тех пор, пока не приблизится к пороговому значению тайм-аута поддержания активности внутреннего сервера, то запрос поступает и отправляется на внутренний сервер с использованием существующего соединения. Это может привести к 502 Bad Gateway
из-за неожиданной ошибки EOF, как описано ниже:
- Допустим, время ожидания активности, установленное как на процессоре сообщений, так и на внутреннем сервере, составляет 60 секунд, и новый запрос не поступил до тех пор, пока не прошло 59 секунд после того, как предыдущий запрос был обслужен конкретным процессором сообщений.
- Процессор сообщений продолжает обрабатывать запрос, поступивший на 59-й секунде, используя существующее соединение (поскольку время ожидания активности еще не истекло), и отправляет запрос на внутренний сервер.
- Однако до того, как запрос поступит на внутренний сервер, на внутреннем сервере было превышено пороговое значение времени ожидания активности.
- Запрос процессора сообщений на ресурс находится в стадии выполнения, но внутренний сервер пытается закрыть соединение, отправляя пакет
FIN
процессору сообщений. - Пока процессор сообщений ожидает получения данных, он вместо этого получает неожиданный
FIN
, и соединение разрывается. - Это приводит к
Unexpected EOF
, и впоследствии процессор сообщений возвращает клиенту502
.
В этом случае мы наблюдали ошибку 502
, поскольку на процессоре сообщений и внутреннем сервере было настроено одинаковое значение тайм-аута поддержания активности, равное 60 секундам. Аналогично, эта проблема также может возникнуть, если для тайм-аута поддержания активности на процессоре сообщений настроено более высокое значение, чем на внутреннем сервере.
Диагностика
- Если вы являетесь пользователем публичного облака :
- Используйте инструмент мониторинга или трассировки API (как описано в разделе «Общие шаги диагностики ») и убедитесь, что у вас есть оба следующих параметра:
- Код ошибки:
messaging.adaptors.http.flow.UnexpectedEOFAtTarget
- Источник неисправности:
target
- Код ошибки:
- Перейдите к разделу «Использование tcpdump» для дальнейшего изучения.
- Используйте инструмент мониторинга или трассировки API (как описано в разделе «Общие шаги диагностики ») и убедитесь, что у вас есть оба следующих параметра:
- Если вы являетесь пользователем частного облака :
- Используйте инструмент трассировки или журналы доступа NGINX, чтобы определить идентификатор сообщения, код ошибки и источник ошибки
502
. - Найдите идентификатор сообщения в журнале процессора сообщений.
(/opt/apigee/var/log/edge-message-processor/logs/system.log
). - Вы увидите
java.io.EOFEXception: eof unexpected
как показано ниже:2020-11-22 14:42:39,917 org:myorg env:prod api:myproxy rev:1 messageid:myorg-opdk-dc1-node2-17812-56001-1 NIOThread@1 ERROR HTTP.CLIENT - HTTPClient$Context$3.onException() : ClientChannel[Connected: Remote:51.254.225.9:80 Local:10.154.0.61:35326]@12972 useCount=7 bytesRead=0 bytesWritten=159 age=7872ms lastIO=479ms isOpen=true.onExceptionRead exception: {} java.io.EOFException: eof unexpected at com.apigee.nio.channels.PatternInputChannel.doRead(PatternInputChannel.java:45) at com.apigee.nio.channels.InputChannel.read(InputChannel.java:103) at com.apigee.protocol.http.io.MessageReader.onRead(MessageReader.java:80) at com.apigee.nio.channels.DefaultNIOSupport$DefaultIOChannelHandler.onIO(NIOSupport.java:51) at com.apigee.nio.handlers.NIOThread.run(NIOThread.java:220)
- Ошибка
java.io.EOFException: eof unexpected
указывает на то, что процессор сообщений получилEOF
, пока он все еще ожидал чтения ответа от внутреннего сервера. - Атрибут
useCount=7
в приведенном выше сообщении об ошибке указывает, что процессор сообщений повторно использовал это соединение около семи раз, а атрибутbytesWritten=159
указывает, что процессор сообщений отправил на внутренний сервер полезные данные запроса размером159
байт. Однако он получил ноль байтов обратно, когда произошел неожиданныйEOF
. Это показывает, что процессор сообщений повторно использовал одно и то же соединение несколько раз, и в этом случае он отправил данные, но вскоре после этого получил
EOF
до того, как были получены какие-либо данные. Это означает, что существует высокая вероятность того, что время ожидания активности внутреннего сервера короче или равно значению, установленному в прокси-сервере API.Вы можете продолжить расследование с помощью
tcpdump
, как описано ниже.
- Используйте инструмент трассировки или журналы доступа NGINX, чтобы определить идентификатор сообщения, код ошибки и источник ошибки
Использование tcpdump
- Захватите
tcpdump
на внутреннем сервере с помощью следующей команды:tcpdump -i any -s 0 host MP_IP_Address -w File_Name
- Проанализируйте захваченный
tcpdump
:Вот пример вывода tcpdump:
В приведенном выше примере
tcpdump
вы можете увидеть следующее:- В пакете
5992,
внутренний сервер получил запросGET
. - В пакете
6064
он отвечает200 OK.
- В пакете
6084
внутренний сервер получил еще один запросGET
. - В пакете
6154
он отвечает200 OK
. - В пакете
6228
внутренний сервер получил третий запросGET
. - На этот раз внутренний сервер возвращает
FIN, ACK
процессору сообщений (пакет6285
), инициируя закрытие соединения.
В этом примере одно и то же соединение было успешно повторно использовано дважды, но при третьем запросе внутренний сервер инициирует закрытие соединения, в то время как процессор сообщений ожидает данных от внутреннего сервера. Это говорит о том, что время ожидания активности внутреннего сервера, скорее всего, короче или равно значению, установленному в прокси-сервере API. Чтобы убедиться в этом, см. раздел Сравнение времени ожидания активности на Apigee и внутреннем сервере .
- В пакете
Сравните время ожидания активности на Apigee и внутреннем сервере.
- По умолчанию Apigee использует значение 60 секунд для свойства тайм-аута поддержания активности.
Однако возможно, что вы переопределили значение по умолчанию в прокси-сервере API. Вы можете убедиться в этом, проверив конкретное определение
TargetEndpoint
в неисправном прокси-сервере API, который выдает ошибку502
.Пример конфигурации TargetEndpoint:
<TargetEndpoint name="default"> <HTTPTargetConnection> <URL>https://mocktarget.apigee.net/json</URL> <Properties> <Property name="keepalive.timeout.millis">30000</Property> </Properties> </HTTPTargetConnection> </TargetEndpoint>
В приведенном выше примере свойство тайм-аута поддержания активности переопределяется значением 30 секунд (
30000
миллисекунд).- Затем проверьте свойство тайм-аута поддержания активности, настроенное на вашем внутреннем сервере. Допустим, ваш внутренний сервер настроен на значение
25 seconds
. - Если вы определите, что значение свойства тайм-аута поддержания активности в Apigee выше, чем значение свойства тайм-аута поддержания активности на внутреннем сервере, как в приведенном выше примере, то это является причиной ошибки
502
.
Разрешение
Убедитесь, что свойство тайм-аута поддержания активности всегда меньше в Apigee (в компоненте API-прокси и процессоре сообщений) по сравнению со значением на внутреннем сервере.
- Определите значение, установленное для тайм-аута поддержания активности на внутреннем сервере.
- Настройте соответствующее значение для свойства тайм-аута поддержания активности в прокси-сервере API или процессоре сообщений, чтобы свойство времени ожидания активности было ниже, чем значение, установленное на внутреннем сервере, используя шаги, описанные в разделе Настройка тайм-аута поддержания активности на процессорах сообщений .
Если проблема не устранена, перейдите к разделу «Необходимо собрать диагностическую информацию» .
Лучшая практика
Настоятельно рекомендуется, чтобы нижестоящие компоненты всегда имели меньший порог времени ожидания активности, чем настроенный на вышестоящих серверах, чтобы избежать подобных состояний гонки и ошибок 502
. Каждый нисходящий переход должен быть ниже, чем каждый восходящий переход. В Apigee Edge рекомендуется использовать следующие рекомендации:
- Тайм-аут активности клиента должен быть меньше тайм-аута активности пограничного маршрутизатора.
- Время ожидания активности пограничного маршрутизатора должно быть меньше, чем время ожидания активности процессора сообщений.
- Время ожидания активности процессора сообщений должно быть меньше, чем время ожидания активности целевого сервера.
- Если у вас есть другие прыжки перед или после Apigee, следует применить то же правило. Вы всегда должны оставлять закрытие соединения с вышестоящим клиентом как обязанность нижестоящего клиента.
Необходимо собрать диагностическую информацию
Если проблема не устранена даже после выполнения приведенных выше инструкций, соберите следующую диагностическую информацию, а затем обратитесь в службу поддержки Apigee Edge .
Если вы являетесь пользователем Public Cloud , предоставьте следующую информацию:
- Название организации
- Имя среды
- Имя API-прокси
- Выполните команду
curl
, чтобы воспроизвести ошибку502
- Файл трассировки, содержащий запросы с
502 Bad Gateway - Unexpected EOF
- Если ошибки
502
в настоящее время не возникают, укажите период времени с информацией о часовом поясе, когда ошибки502
возникали в прошлом.
Если вы являетесь пользователем частного облака , предоставьте следующую информацию:
- Полное сообщение об ошибке, наблюдаемое для неудачных запросов
- Организация, имя среды и имя прокси-сервера API, для которых вы наблюдаете ошибки
502
- Пакет API-прокси
- Файл трассировки, содержащий запросы с
502 Bad Gateway - Unexpected EOF
- Журналы доступа NGINX
/opt/apigee/var/log/edge-router/nginx/ ORG ~ ENV . PORT# _access_log
- Журналы процессора сообщений
/opt/apigee/var/log/edge-message-processor/logs/system.log
- Период времени с информацией о часовом поясе, когда произошла ошибка
502
-
Tcpdumps
собранные на процессорах сообщений или внутреннем сервере (или на обоих) в момент возникновения ошибки.