Esta é a documentação do Apigee Edge.
Acesse
Documentação da Apigee X. informações
Sintoma
O aplicativo cliente recebe um código de status HTTP de 502
com a mensagem
Bad Gateway
como uma resposta para chamadas de API.
O código de status HTTP 502
significa que o cliente não está recebendo uma resposta válida do
servidores de back-end que vão atender à solicitação.
Mensagens de erro
O aplicativo cliente recebe o seguinte código de resposta:
HTTP/1.1 502 Bad Gateway
Além disso, você poderá encontrar a seguinte mensagem de erro:
{ "fault": { "faultstring": "Unexpected EOF at target", "detail": { "errorcode": "messaging.adaptors.http.UnexpectedEOFAtTarget" } } }
Causas possíveis
Uma das causas típicas da 502 Bad Gateway Error
é Unexpected EOF
que pode ser causado pelos seguintes motivos:
Causa | Detalhes | Etapas fornecidas para |
---|---|---|
Servidor de destino configurado incorretamente | O servidor de destino não está configurado corretamente para oferecer suporte a conexões TLS/SSL. | Usuários de nuvem pública e privada de borda |
EOFException do servidor de back-end | O servidor de back-end pode enviar EOF abruptamente. | Apenas usuários da nuvem privada de borda |
Tempo limite de sinal de atividade configurado incorretamente | Tempos limite de sinal de atividade configurados incorretamente na Apigee e no servidor de back-end. | Usuários de nuvem pública e privada de borda |
Etapas comuns do diagnóstico
Para diagnosticar o erro, é possível usar qualquer um dos seguintes métodos:
Monitoramento de APIs
Para diagnosticar o erro usando a API Monitoring:
Com o Monitoramento de APIs, é possível investigar
os erros 502
, seguindo as etapas explicadas em
Investigar problemas. Ou seja:
- Acesse o painel Investigar.
- Selecione o Código de status no menu suspenso e verifique se o momento certo
está selecionado quando os
502
erros ocorreram. - Clique na caixa da matriz quando houver um grande número de erros
502
. - No lado direito, clique em Ver registros para os erros
502
que será mais ou menos assim: - A Origem da falha é
target
- O código da falha é
messaging.adaptors.http.UnexpectedEOFAtTarget
.
Aqui, podemos ver as seguintes informações:
Isso indica que o erro 502
é causado pela meta devido a um EOF inesperado.
Além disso, anote o Request Message ID
do erro 502
para mais
a investigação.
Ferramenta Trace
Para diagnosticar o erro usando a ferramenta Trace:
- Ative o
rastrear sessão e fazer a chamada de API para reproduzir o problema
502 Bad Gateway
. - Selecione uma das solicitações com falha e examine o trace.
- Navegue pelas várias fases do trace e localize onde a falha ocorreu.
-
A falha vai aparecer depois que a solicitação for enviada ao servidor de destino, conforme mostrado abaixo:
-
Determine o valor de X-Apigee.fault-source e X-Apigee.fault-code no Fase AX (dados de análise registrados) no rastreamento.
Se os valores de X-Apigee.fault-source e X-Apigee.fault-code corresponderem ao valores mostrados na tabela a seguir, é possível confirmar que o erro
502
vindo do servidor de destino:Cabeçalhos de resposta Valor X-Apigee.fault-source target
X-Apigee.fault-code messaging.adaptors.http.flow.UnexpectedEOFAtTarget
Além disso, anote o
X-Apigee.Message-ID
do erro502
. para uma investigação mais detalhada.
Registros de acesso do NGINX
Para diagnosticar o erro usando o NGINX:
Também é possível consultar os registros de acesso do NGINX para determinar a causa do status 502
o código-fonte é alterado. Isso é especialmente útil se o problema já tiver ocorrido no passado ou se o problema for
está intermitente e não consegue capturar o rastro na interface. Siga estas etapas para
determine essas informações nos registros de acesso do NGINX:
- Verifique os registros de acesso do NGINX.
/opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log
- Pesquisa erros
502
para o proxy de API específico durante um período específico (se o problema tiver acontecido no passado) ou por qualquer solicitação que ainda falhe com502
. - Se houver algum erro
502
, verifique se ele foi causado pelo destino enviar umUnexpected EOF
. Se os valores de X-Apigee.fault-source e X- Apigee.fault-code correspondem aos valores mostrados na tabela abaixo, o erro502
é causado pelo encerramento inesperado da conexão:Cabeçalhos de resposta Valor X-Apigee.fault-source target
X-Apigee.fault-code messaging.adaptors.http.flow.UnexpectedEOFAtTarget
Confira um exemplo de entrada que mostra o erro
502
causado pelo servidor de destino:
Além disso, anote os IDs das mensagens dos erros 502
para uma investigação mais detalhada.
Causa: servidor de destino configurado incorretamente
O servidor de destino não está configurado corretamente para oferecer suporte a conexões TLS/SSL.
Diagnóstico
- Use o Monitoramento de API, a Ferramenta de rastreamento ou
Registros de acesso do NGINX para determinar o ID da mensagem,
código e origem do erro
502
. - Ative o rastreamento na interface da API afetada.
- Se o trace da solicitação de API com falha mostrar o seguinte:
- O erro
502 Bad Gateway
é exibido assim que a solicitação de fluxo de destino é iniciada. - O
error.class
mostramessaging.adaptors.http.UnexpectedEOF.
.Então, é muito provável que esse problema seja causado por um servidor de destino incorreto configuração do Terraform.
- O erro
- Consiga a definição do servidor de destino usando a chamada da API Edge Management:
- Se você for um usuário da nuvem pública, use esta API:
curl -v https://api.enterprise.apigee.com/v1/organizations/<orgname>/environments/<envname>/targetservers/<targetservername> -u <username>
- Se você for um usuário da nuvem privada, use esta API:
curl -v http://<management-server-host>:<port #>/v1/organizations/<orgname>/environments/<envname>/targetservers/<targetservername> -u <username>
Exemplo de definição de
TargetServer
com erros:<TargetServer name="target1"> <Host>mocktarget.apigee.net</Host> <Port>443</Port> <IsEnabled>true</IsEnabled> </TargetServer >
- Se você for um usuário da nuvem pública, use esta API:
-
A definição ilustrada de
TargetServer
é um exemplo de uma das de configuração do Terraform, o que é explicado a seguir:Vamos supor que o servidor de destino
mocktarget.apigee.net
esteja configurado. para aceitar conexões seguras (HTTPS) na porta443
. No entanto, se você observar a definição do servidor de destino, não existem outros atributos/sinalizações que indicam que ele é destinadas a conexões seguras. Isso faz com que o Edge trate as solicitações de API que vão para o servidor de destino específico como solicitações HTTP (não seguras). Portanto, o Edge não vai inicie o processo de handshake de SSL com esse servidor de destino.Como o servidor de destino está configurado para aceitar somente solicitações HTTPS (SSL) em
443
, ele rejeitar a solicitação do Edge ou encerrar a conexão; Como resultado, você recebe umUnexpectedEOFAtTarget
erro no processador de mensagens. O processador de mensagens enviará502 Bad Gateway
como resposta ao cliente.
Resolução
Sempre verifique se o servidor de destino está configurado corretamente de acordo com seus requisitos.
No exemplo ilustrado acima, se você quiser fazer solicitações para um destino seguro (HTTPS/SSL)
servidor, é necessário incluir os atributos SSLInfo
com a flag enabled
definida
para true
. Embora seja permitido adicionar os atributos SSLInfo
para um servidor de destino na
a definição do endpoint, recomendamos adicionar os atributos SSLInfo
como parte do destino
a definição do servidor para evitar confusão.
- Se o serviço de back-end exigir comunicação SSL unidirecional:
- É necessário ativar o TLS/SSL na definição de
TargetServer
incluindo oSSLInfo
. atributos em que a flagenabled
está definida como verdadeira, conforme mostrado abaixo:<TargetServer name="mocktarget"> <Host>mocktarget.apigee.net</Host> <Port>443</Port> <IsEnabled>true</IsEnabled> <SSLInfo> <Enabled>true</Enabled> </SSLInfo> </TargetServer>
- Se você quiser validar o certificado do servidor de destino no Edge, também será necessário
inclua o truststore (contendo o certificado do servidor de destino) conforme mostrado abaixo:
<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>
- É necessário ativar o TLS/SSL na definição de
- Se o serviço de back-end exigir comunicação SSL bidirecional:
- É preciso ter atributos
SSLInfo
comClientAuthEnabled
.Keystore
,KeyAlias
e As flagsTruststore
são definidas corretamente, conforme mostrado abaixo:<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 >
- É preciso ter atributos
Referências
Balanceamento de carga em servidores de back-end
Causa: EOFException do servidor de back-end
O servidor de back-end pode enviar EOF (fim do arquivo) abruptamente.
Diagnóstico
- Use o Monitoramento de API, a Ferramenta de rastreamento ou
Registros de acesso do NGINX para determinar o ID da mensagem,
código e origem do erro
502
. - Verificar os registros do processador de mensagens
(
/opt/apigee/var/log/edge-message-processor/logs/system.log
) e pesquise temeof unexpected
para a API específica ou se você tem omessageid
exclusivo para a API; solicitado, você poderá pesquisá-lo.Exemplo de stack trace de exceção do registro do processador de mensagens
"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]"
No exemplo acima, é possível ver que o erro
java.io.EOFException: eof unexpected
ocorreu enquanto o processador de mensagens tenta ler uma resposta do no servidor de back-end. Essa exceção indica que o fim do arquivo (EOF, na sigla em inglês) ou o fim do fluxo tenha sido atingido inesperadamente.Ou seja, o processador de mensagens enviou a solicitação de API para o servidor de back-end e estava aguardando ou ler a resposta. No entanto, o servidor de back-end encerrou a conexão abruptamente antes que o processador de mensagens recebesse a resposta ou pudesse ler a resposta completa.
- Verifique os registros do servidor de back-end e veja se há erros ou informações que possam levaram o servidor de back-end a encerrar a conexão abruptamente. Se você encontrar erros/informações, e acesse Resolução. e corrija o problema no servidor de back-end.
- Se você não encontrar erros ou informações no servidor de back-end, colete a saída
tcpdump
nos processadores de mensagens:- Se o host do servidor de back-end tiver um único endereço IP, use o seguinte comando:
tcpdump -i any -s 0 host IP_ADDRESS -w FILE_NAME
- Se o host do servidor de back-end tiver vários endereços IP, use o seguinte comando:
tcpdump -i any -s 0 host HOSTNAME -w FILE_NAME
Normalmente, esse erro é causado porque o servidor de back-end responde com
[FIN,ACK]
assim que o processador de mensagens enviar a solicitação ao servidor de back-end.
- Se o host do servidor de back-end tiver um único endereço IP, use o seguinte comando:
-
Considere o exemplo de
tcpdump
a seguir.Amostra de
tcpdump
tirada quando502 Bad Gateway Error
(UnexpectedEOFAtTarget
) ocorreu - Na saída de TCPDump, você observa a seguinte sequência de eventos:
- No pacote
985
, o processador de mensagens envia a solicitação de API ao servidor de back-end. - No pacote
986
, o servidor de back-end responde imediatamente com[FIN,ACK]
. - No pacote
987
, o processador de mensagens responde com[FIN,ACK]
ao back-end. servidor. - Eventualmente, as conexões serão fechadas com
[ACK]
e[RST]
em ambos os lados. - Como o servidor de back-end envia
[FIN,ACK]
, você recebe a exceção Exceçãojava.io.EOFException: eof unexpected
na mensagem Processador
- No pacote
- Isso poderá acontecer se houver um problema de rede no servidor de back-end. Envolva sua rede de operações para investigar esse problema mais a fundo.
Resolução
Corrija o problema no servidor de back-end corretamente.
Se o problema persistir e você precisar de ajuda para solucionar o problema, 502 Bad Gateway Error
ou você
suspeita que seja um problema no Edge, entre em contato com o suporte do Apigee Edge.
Causa: tempo limite de sinal de atividade configurado incorretamente
Antes de diagnosticar se essa é a causa dos erros 502
, leia
os conceitos a seguir.
Conexões permanentes na Apigee
Por padrão, a Apigee (e a seguir com o padrão HTTP/1.1) usa conexões permanentes.
ao se comunicar com o servidor de back-end de destino. Conexões persistentes podem aumentar o desempenho
permitindo que uma conexão TCP e TLS/SSL já estabelecida (se aplicável) seja reutilizada, o que
e reduzir as sobrecargas de latência. A duração da persistência de uma conexão é controlada
usando um tempo limite de sinal de atividade (keepalive.timeout.millis
) de uma propriedade.
O servidor de back-end e o processador de mensagens da Apigee usam tempos limite de sinal de atividade para manter conexões se abrem umas com as outras. Quando nenhum dado for recebido dentro do tempo limite do sinal de atividade duração, o servidor de back-end ou o processador de mensagens pode encerrar a conexão com o outro.
Por padrão, os proxies de API implantados em um processador de mensagens na Apigee têm um tempo limite de sinal de atividade definido como
60s
, a menos que seja substituído. Quando nenhum dado for recebido para 60s
, a Apigee
encerre a conexão com o servidor de back-end. O servidor de back-end também mantém um tempo limite de sinal de atividade,
e, assim que expirar, o servidor de back-end
encerra a conexão com o processador de mensagens.
Implicação da configuração incorreta de tempo limite de sinal de atividade
Se a Apigee ou o servidor de back-end estiverem configurados com tempos limite de sinal de atividade incorretos,
resulta em uma disputa que faz com que o servidor de back-end envie um End Of File
(FIN)
inesperado em resposta a uma solicitação de recurso.
Por exemplo, se o tempo limite de sinal de atividade for configurado no proxy de API ou no
Processador com um valor maior ou igual ao tempo limite do servidor de back-end upstream, depois
a seguinte disputa pode ocorrer. Ou seja, se o processador de mensagens não receber
até que muito próximo do limite do tempo limite de atividade de back-end do servidor de back-end, então uma solicitação
é recebido e enviada ao servidor de back-end usando a conexão atual. Isso pode levar a
502 Bad Gateway
devido a um erro EOF inesperado, conforme explicado abaixo:
- Digamos que o tempo limite de sinal de atividade foi definido no processador de mensagens e no servidor de back-end é de 60 segundos e não é nova solicitação veio até 59 segundos depois que a solicitação anterior foi atendida pelo Processador de mensagens
- O processador de mensagens processa a solicitação que chegou aos 59 segundos usando a conexão existente (já que o tempo limite de sinal de atividade ainda não expirou) e envia o ao servidor de back-end.
- No entanto, antes que a solicitação chegue ao servidor de back-end, o tempo limite de sinal de atividade o limite foi excedido no servidor de back-end.
- A solicitação do processador de mensagens para um recurso está em andamento, mas o servidor de back-end
tenta encerrar a conexão enviando um pacote
FIN
para o servidor da Processador - Enquanto o processador de mensagens aguarda o recebimento dos dados, em vez disso, ele recebe
o
FIN
inesperado e a conexão é encerrada. - Isso resulta em uma
Unexpected EOF
e, em seguida, uma502
é retornados ao cliente pelo processador de mensagens.
Nesse caso, observamos que o erro 502
ocorreu porque o mesmo tempo limite de sinal de atividade foi atingido.
de 60 segundos foi configurado no processador de mensagens e no servidor de back-end. Da mesma forma,
Esse problema também poderá acontecer se um valor mais alto for configurado para o tempo limite de sinal de atividade
que está no servidor de back-end.
Diagnóstico
- Se você for usuário da nuvem pública:
- Use a ferramenta Trace ou API Monitoring (conforme explicado em
etapas comuns de diagnóstico) e confirme se você atende a uma das opções abaixo
configurações:
- Código de falha:
messaging.adaptors.http.flow.UnexpectedEOFAtTarget
- Origem da falha:
target
- Código de falha:
- Acesse Como usar o tcpdump para mais detalhes.
- Use a ferramenta Trace ou API Monitoring (conforme explicado em
etapas comuns de diagnóstico) e confirme se você atende a uma das opções abaixo
configurações:
- Se você é usuário da nuvem privada:
- Use a ferramenta Trace ou
Registros de acesso do NGINX para determinar o ID da mensagem,
código e origem do erro
502
. - Pesquisar o ID da mensagem no registro do processador de mensagens
(/opt/apigee/var/log/edge-message-processor/logs/system.log
). - Você verá o
java.io.EOFEXception: eof unexpected
conforme mostrado abaixo: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)
- O erro
java.io.EOFException: eof unexpected
indica que o O processador de mensagens recebeu umEOF
enquanto ainda estava esperando a leitura de uma do servidor de back-end. - O atributo
useCount=7
na mensagem de erro acima indica que o O processador de mensagens reutilizou essa conexão cerca de sete vezes, e o atributobytesWritten=159
indica que o processador de mensagens enviou a solicitação. payload de159
bytes para o servidor de back-end. Mas não recebeu nenhum byte quando aEOF
inesperada ocorreu. -
Isso mostra que o processador de mensagens reutilizou a mesma conexão várias vezes, Nesse caso, ele enviou dados, mas logo depois recebeu uma mensagem
EOF
antes que os dados fossem recebidos. Isso significa que há uma alta probabilidade de que o back-end o tempo limite de sinal de atividade do servidor for menor ou igual ao definido no proxy de API.Você pode investigar mais detalhadamente com a ajuda de
tcpdump
, conforme explicado abaixo.
- Use a ferramenta Trace ou
Registros de acesso do NGINX para determinar o ID da mensagem,
código e origem do erro
Como usar o tcpdump
- Capture um
tcpdump
no servidor de back-end com o seguinte comando:tcpdump -i any -s 0 host MP_IP_Address -w File_Name
- Analise a
tcpdump
capturada:Confira um exemplo de resposta do tcpdump:
No
tcpdump
de exemplo acima, é possível ver o seguinte:- No pacote
5992,
, o servidor de back-end recebeu uma solicitaçãoGET
. - No pacote
6064
, ele responde com200 OK.
. - No pacote
6084
, o servidor de back-end recebeu outra solicitaçãoGET
. - No pacote
6154
, ele responde com200 OK
. - No pacote
6228
, o servidor de back-end recebeu uma terceira solicitaçãoGET
. - Desta vez, o servidor de back-end retorna um
FIN, ACK
para o processador de mensagens. (pacote6285
) iniciando o fechamento da conexão.
A mesma conexão foi reutilizada duas vezes neste exemplo, mas na terceira solicitação, o servidor de back-end inicia o encerramento da conexão, enquanto o processador de mensagens aguardando os dados do servidor de back-end. Isso sugere que o servidor de back-end o tempo limite de atividade provavelmente será menor ou igual ao valor definido no proxy de API. Para validar Para isso, consulte Comparar o tempo limite de sinal de atividade na Apigee e no servidor de back-end.
- No pacote
Comparar o tempo limite de sinal de atividade na Apigee e no servidor de back-end
- Por padrão, a Apigee usa um valor de 60 segundos para a propriedade de tempo limite de sinal de atividade.
-
No entanto, é possível que você tenha substituído o valor padrão no proxy de API. Para confirmar isso, confira a definição específica de
TargetEndpoint
no arquivo um proxy de API com falha que está fornecendo erros502
.Exemplo de configuração do TargetEndpoint:
<TargetEndpoint name="default"> <HTTPTargetConnection> <URL>https://mocktarget.apigee.net/json</URL> <Properties> <Property name="keepalive.timeout.millis">30000</Property> </Properties> </HTTPTargetConnection> </TargetEndpoint>
No exemplo acima, a propriedade de tempo limite de sinal de atividade foi substituída por um valor de 30 segundos (
30000
milissegundos). - Em seguida, verifique a propriedade de tempo limite de sinal de atividade configurada no servidor de back-end. Digamos que
seu servidor de back-end está configurado com um valor de
25 seconds
; - Se você determinar que o valor da propriedade de tempo limite de sinal de atividade na Apigee é maior
que o valor da propriedade de tempo limite de sinal de atividade no servidor de back-end, como acima
exemplo, essa é a causa dos erros
502
.
Resolução
Certifique-se de que a propriedade de tempo limite de sinal de atividade seja sempre menor na Apigee (no proxy de API e Processador de mensagens) em comparação com o servidor de back-end.
- Determine o valor definido para o tempo limite de sinal de atividade no servidor de back-end.
- Configure um valor apropriado para a propriedade de tempo limite de sinal de atividade no proxy de API ou Processador de mensagens, de modo que a propriedade de tempo limite de sinal de atividade seja menor que o valor definido no de back-end da Web usando as etapas descritas em Como configurar o tempo limite de sinal de atividade em processadores de mensagens.
Se o problema persistir, acesse Precisa de informações de diagnóstico.
Prática recomendada
É altamente recomendável que os componentes downstream tenham sempre um tempo limite de sinal de atividade menor
do que o configurado nos servidores upstream para evitar esses tipos de condições de corrida e
502
erro. Cada salto downstream precisa ser menor que cada salto upstream. Na Apigee
é uma boa prática usar as seguintes diretrizes:
- O tempo limite de sinal de atividade do cliente deve ser menor que o tempo limite de sinal de atividade do roteador de borda.
- O tempo limite de sinal de atividade do roteador de borda deve ser menor que o tempo limite de atividade do processador de mensagens.
- O tempo limite de sinal de atividade do processador de mensagens deve ser menor que o tempo limite de sinal de atividade do servidor de destino.
- Se você tiver outros saltos na frente ou atrás da Apigee, a mesma regra precisará ser aplicada. Você deve sempre deixar como responsabilidade do cliente downstream encerrar o com o upstream.
É necessário coletar informações de diagnóstico
Se o problema persistir mesmo depois de seguir as instruções acima, colete as seguintes informações: informações de diagnóstico e entre em contato com o suporte do Apigee Edge.
Se você for um usuário da nuvem pública, forneça as seguintes informações:
- Nome da organização
- Nome do ambiente
- Nome do proxy da API
- Conclua o comando
curl
para reproduzir o erro502
. - Arquivo de rastreamento contendo as solicitações com o erro
502 Bad Gateway - Unexpected EOF
- Se os erros
502
não estiverem ocorrendo atualmente, forneça o período com as informações de fuso horário quando erros502
ocorreram no passado.
Se você for um usuário da nuvem privada, forneça estas informações:
- Mensagem de erro completa observada para as solicitações com falha
- Organização, nome do ambiente e nome do proxy da API que você está observando
502
erro - Pacote de proxy de API
- Arquivo de rastreamento contendo as solicitações com o erro
502 Bad Gateway - Unexpected EOF
- Registros de acesso do NGINX
/opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log
- Registros do processador de mensagens
/opt/apigee/var/log/edge-message-processor/logs/system.log
- O período com as informações de fuso horário em que os erros
502
ocorreram Tcpdumps
coletadas nos processadores de mensagens, no servidor de back-end ou em ambos quando o erro ocorreu