Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
Belirti
İstemci uygulaması 502 Bad Gateway şeklinde bir HTTP durum kodu alıyor
API çağrılarına yanıt olarak protocol.http.ResponseWithBody kodunu kullanır.
Hata mesajı
İstemci uygulaması aşağıdaki yanıt kodunu alır:
HTTP/1.1 502 Bad Gateway
Ayrıca, aşağıdaki hata mesajlarından biriyle karşılaşabilirsiniz:
{
"fault":{
"faultstring":"Received 204 Response with message body",
"detail":{
"errorcode":"protocol.http.ResponseWithBody"
}
}
}{
"fault":{
"faultstring":"Received 205 Response with message body",
"detail":{
"errorcode":"protocol.http.ResponseWithBody"
}
}
}Olası nedenler
Bu hata, arka uç sunucusundan Apigee Edge'e verilen HTTP yanıtı
204 No Content veya 205 Reset Content ancak yanıtı içeriyor
body ve/veya aşağıdaki başlıklardan birini veya daha fazlasını içermelidir:
Content-LengthContent-EncodingTransfer-Encoding
Spesifikasyonlara göre
RFC 7231, bölüm 6.3.5: 204 İçerik Yok ve
RFC 7231, bölüm 6.3.6: 205 İçeriği Sıfırlama için ek içerik olmaması beklenir
kaynak sunucu tarafından 204 No
Content veya 205 Reset Content durum koduyla yanıt yük gövdesinin bir parçası olarak gönderilmelidir. Yanıt başlıkları
Örneğin Content-Length, Content-Encoding veya
Transfer-Encoding, yanıt yükünün boyutunu, türünü veya biçimini belirtir.
Bu nedenle Apigee Edge, 502 Bad Gateway
hata kodunu protocol.http.ResponseWithBody
koşullar:
| Arka uç sunucusundan alınan durum kodu | ||
|---|---|---|
| Arka uç sunucusundan alınan yanıt şunu içeriyor: | 204 İçerik Yok | 205 İçeriği Sıfırlama |
| Yanıt Metni | HATA | HATA |
(sıfır olmayan bir değere ayarlanmış) |
HATA | HATA |
( desteklenen kodlamayı inceleyin) |
HATA | HATA YOK |
Transfer-Encoding |
HATA | HATA |
Bu hatanın olası nedenleri aşağıda açıklanmıştır:
| Neden | Açıklama | Şunun için geçerli sorun giderme talimatları: |
|---|---|---|
| Arka uç sunucusundan 204 yanıtı olan yanıt gövdesi veya Başlıklar | Arka uç sunucusu bir 204 No Content veya 205 Reset Content gönderir
yanıt gövdesi ve/veya bir ya da daha fazla başlık Content-Type ile yanıt,
Content-Encoding veya Transfer-Encoding. |
Edge Herkese Açık ve Private Cloud kullanıcıları |
Sık kullanılan teşhis adımları
Bu hatayı teşhis etmek için aşağıdaki araçlardan/tekniklerden birini kullanın:
API Monitoring
API Monitoring'i kullanarak hatayı teşhis etmek için:
- Apigee Edge kullanıcı arayüzünde uygun role sahip olur.
Sorunu incelemek istediğiniz kuruluşa geçin.
- Analiz > API İzleme > İnceleme sayfası.
- Hataları gözlemlediğiniz zaman aralığını seçin.
- Zaman ile Hata Kodu'nun grafiğini çizin.
protocol.http.ResponseWithBodyhata koduna sahip bir hücre seçin: aşağıda gösterilmiştir:( resmi büyüt)
Hata koduyla ilgili bilgileri görürsünüz Aşağıda gösterildiği gibi
protocol.http.ResponseWithBody:( resmi büyüt)
Günlükleri görüntüle'yi tıklayın ve başarısız isteğin bulunduğu satırı genişletin.
( resmi büyüt)
- Günlükler penceresinde aşağıdaki ayrıntılara dikkat edin:
- Durum Kodu:
502 - Hata Kaynağı:
target - Hata Kodu:
protocol.http.ResponseWithBody.
- Durum Kodu:
- Hata Kaynağı için
targetve Hata Kod,protocol.http.ResponseWithBodydeğerine sahipse bu arka uç sunucusunun bir Şununla birlikte204 No Contentveya205 Reset Contentdurum kodu: yanıt gövdesi ve/veya Olası nedenler bölümüne bakın.
İzleme aracı
İzleme aracını kullanarak hatayı teşhis etmek için:
- İzleme oturumunu etkinleştir
ve şunlardan birini yapın:
502 Bad Gatewayhatasının oluşmasını bekleyin. veya- Sorunu yeniden oluşturabiliyorsanız API çağrısı yapın ve
502 Bad Gatewayhatasını yeniden oluşturun.
Show all FlowInfos (Tüm Akış Bilgilerini Göster) seçeneğinin etkin olduğundan emin olun:
- Başarısız isteklerden birini seçin ve izini inceleyin.
- İzlemenin farklı aşamalarından yararlanın ve hatanın nerede olduğunu bulun meydana geldi.
Hatayı genellikle
flowinfoHata içinde Aşağıda gösterildiği gibi İstek hedef sunucuya gönderildi aşamasından sonra:1. Senaryo
1. Senaryo: Arka Uç Sunucu,
204 No Contentdurum koduyla yanıt veriyor yanıt gövdesini ve/veya şurada listelenen başlıklardan birini içeren: Olası nedenler.
İzdeki aşağıdaki değerleri not edin:
- hata:
Received 204 Response with message body - error.class:
com.apigee.rest.framework.BadGateway
2. Senaryo
2. Senaryo: Arka Uç Sunucu, durum koduyla yanıt veriyor
204 No Contentyanıt gövdesini ve/veya Olası nedenler bölümünde listelenen üstbilgileri.
İzdeki aşağıdaki değerleri not edin:
- hata:
Received 205 Response with message body - error.class:
com.apigee.rest.framework.BadGateway
- hata:
- İzlemede AX (Kayıtlı Analytics Verileri) aşamasına gidin ve düğmeyi tıklayın.
Aşama Ayrıntıları, Hata Başlıkları bölümüne gidin ve X-Apigee-fault-code ve X-Apigee-fault-source değerlerini belirleme aşağıdaki gibidir:
( resmi büyüt)
- X-Apigee-fault-code ve X-Apigee-fault-source değerlerinin
Sırasıyla
are protocol.http.ResponseWithBodyvetarget. Bu, hatanın arka uç sunucusunun bir204 No Contentveya205 Reset Contentdurum kodu yanıt gövdesi ve/veya Olası nedenler bölümünde belirtilen başlıklardan biri.Hata Değer X-Apigee-fault-code protocol.http.ResponseWithBodyX-Apigee-fault-source target
NGINX
NGINX erişim günlüklerini kullanarak hatayı teşhis etmek için:
- Private Cloud kullanıcısıysanız NGINX erişim günlüklerini kullanarak şunları yapabilirsiniz:
HTTP
502 Bad Gatewayile ilgili önemli bilgileri belirler. NGINX erişim günlüklerini kontrol edin:
/opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_logKonum: ORG, ENV ve PORT# gerçek değerlerle değiştirilir.
- Hata kodu içeren
502hatası olup olmadığını görmek için arama yapın Belirli bir süredeprotocol.http.ResponseWithBody(sorun geçmişte oluşmuşsa) veya hâlâ başarısız olan bir istek varsa502 X-Apigee-fault-code ile herhangi bir
502hatası bulursanız şununla eşleşir:protocol.http.ResponseWithBody, ardından X-Apigee-fault-source'un değerini düşünün.NGINX erişim günlüğünden örnek 502 hatası:
NGINX erişim günlüğünden yukarıdaki örnek giriş, X- Apigee-fault-code ve X-Apigee-fault-source:
Yanıt Başlıkları Değer X-Apigee-fault-code protocol.http.ResponseWithBodyX-Apigee-fault-source target- X-Apigee-fault-code ve X-Apigee-fault-source değerlerinin
sırasıyla
protocol.http.ResponseWithBodyvetarget. Bu, hatanın arka uç sunucusunun bir204 No Contentveya205 Reset Contentdurum kodu yanıt gövdesi ve/veya Olası nedenler bölümünde belirtilen başlıklardan biri.
Neden: Arka uç sunucusundan 204 yanıtı içeren yanıt gövdesi veya Başlıklar
Teşhis
- API kullanılarak gözlemlenen hatanın Hata Kodu ve Hata Kaynağı'nı belirleme İzleme, İzleme aracı veya NGINX erişim günlükleri aşağıda açıklandığı gibi Yaygın teşhis adımları.
- Hata Kodu
protocol.http.ResponseWithBodyise ve Hata Kaynağıtargetdeğerine sahipse bu değer, arka ucun sunucu,204 No Contentveya205 Reset Contentdurumuyla yanıt verdi yanıt gövdesini ve/veya başlıklı yardım makalesinde bahsedilen başlıklardan birini içeren kodu Olası nedenler. Arka uç sunucusunun gerçekten bir yanıt yük gövdesi ve/veya bir Olası nedenler bölümünde bahsedilen daha fazla başlığı veya daha fazlasını iptal etmek için şu adımları uygulayın:
Herkese Açık Bulut kullanıcısıysanız ve aynı API isteğini arka uç sunucunuzu doğrudan sistemlerinizden yükleyebilirsiniz.
- Private Cloud kullanıcısıysanız aynı API isteğini ilişkili olan Mesaj İşleyicilerin birinden doğrudan arka uç sunucusuna göndermenizi sağlar. sistemi ve ortamı kolaylaştırır.
Arka uç sunucusundan alınan yanıtı inceleyin ve ve/veya yukarıda bahsedilen başlıklardan birini veya daha fazlasını içermelidir. Cevabınız evet ise o zaman bu hatanın nedeni hakkında bilgi edinin.
Örnek 1
1. Örnek: Content-Encoding Başlıklı Arka Uç Sunucu Yanıtı 204
curl -v "https://BACKEND_SERVER_HOST_NAME/PATH" -H "HEADER: VALUE" -X HTTP_REQUEST_METHOD
… < HTTP/1.1 204 No Content
< Content-Encoding: gzip< Date: Tue, 31 Jul 2021 21:41:13 GMT < Connection: keep-aliveBu örnekte, arka uç sunucusu
204 No Contentdurum kodu veContent-Encoding: gzipÖrnek 2
2. Örnek: Content-Length Header ile Arka Uç Sunucu Yanıtı 204
curl -v "https://BACKEND_SERVER_HOST_NAME/PATH" -H "HEADER: VALUE" -X HTTP_REQUEST_METHOD
… < HTTP/1.1 204 No Content
< Content-Length: 48< Date: Tue, 31 Jul 2021 21:41:13 GMT < Connection: keep-aliveBu örnekte, arka uç sunucusu
204 No Contentdurum kodu veContent-Length: 48Örnek 3
3. Örnek: Yanıt Gövdesi ile Arka Uç Sunucu Yanıtı 205
curl -v "https://BACKEND_SERVER_HOST_NAME/PATH" -H "HEADER: VALUE" -X HTTP_REQUEST_METHOD
… < HTTP/1.1 205 Reset Content < Date: Sat, 31 Jul 2021 17:14:09 GMT < Content-Length: 12 < Content-Type: text/plain; charset=utf-8 < * Connection #0 to host X.X.X.X left intact
This is a sample ResponseBu örnekte, arka uç sunucusu Yanıt gövdesiyle birlikte
205 Reset Contentdurum koduThis is a sample Response.- Yukarıdaki örneklerin tümünde arka uç sunucusu
204 No Contentveya Yanıt gövdesi ve/veya başlıklardan birini içeren205 Reset Contentdurum kodu Olası nedenler bölümünde belirtilmiştir. - Bu nedenle Apigee Edge hata koduyla birlikte
502 Bad Gatewaydurum kodu gönderdiprotocol.http.ResponseWithBody.
Çözünürlük
Arka uç sunucusunun her zaman spesifikasyona uyduğundan emin olun
RFC 7231, bölüm 6.3.6: 205 İçeriği Sıfırla, 204 No Content
veya Apigee Edge'e 205 Reset Content yanıtı verilebilir. Yani arka uç sunucusu,
aşağıdakileri 204 No Content veya
205 Reset Content yanıt:
- Yanıt yük gövdesi
- Ayrıca aşağıdaki başlıklardan herhangi biri:
Content-LengthContent-EncodingTransfer-Encoding
Spesifikasyon
Apigee Edge, 502 Bad Gateway durum kodu ve hata koduyla yanıt verir
protocol.http.ResponseWithBody arka uç sunucusu,
204 No Content veya 205 Reset Content yanıt, ancak
aşağıdaki RFC spesifikasyonlarına uymuyor:
| Spesifikasyon |
|---|
| RFC 7231, bölüm 6.3.5: 204 İçerik Yok |
| RFC 7231, bölüm 6.3.6: 205 İçeriği Sıfırlama |
Dikkat edilmesi gereken önemli noktalar
Önerilen çözüm, arka uç sunucusunu düzelterek 204 No Content
ve yanıt gövdesi ve205 Reset Content
başlıklar - Content-Length, Content-Encoding ve
Transfer-Encoding ve spesifikasyonlara uymalısınız
RFC 7231, bölüm 6.3.5: 204 İçerik Yok ve
RFC 7231, bölüm 6.3.6: 205 İçeriği Sıfırlama.
Hâlâ Apigee Destek Ekibi'nden yardım almak istiyorsanız şu sayfaya gidin: Teşhis bilgileri toplanmalıdır.
Teşhis bilgileri toplanmalıdır
Aşağıdaki teşhis bilgilerini toplayın, ardından Apigee Edge Destek Ekibi ile iletişime geçin:
Herkese açık Cloud kullanıcısıysanız aşağıdaki bilgileri sağlayın:
- Kuruluş adı
- Ortam adı
- API Proxy adı
502hatasını yeniden oluşturmak için kullanılancurlkomutunu tamamlayın- API istekleri için izleme dosyası
Private Cloud kullanıcısıysanız aşağıdaki bilgileri sağlayın:
- Başarısız istekler için tam hata mesajı gözlemlendi
- Ortam adı
- API Proxy paketi
- API istekleri için izleme dosyası
NGINX erişim günlükleri
/opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_logYer: ORG, ENV ve PORT# şununla değiştirilir: gerçek değerler.
- Mesaj İşleyici sistem günlükleri
/opt/apigee/var/log/edge-message-processor/logs/system.log