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-Length
Content-Encoding
Transfer-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ı
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 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.ResponseWithBody
hata 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
target
ve Hata Kodprotocol.http.ResponseWithBody
değerine sahipse bu arka uç sunucusunun bir Şununla birlikte204 No Content
veya205 Reset Content
durum 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 Gateway
hatasının oluşmasını bekleyin. veya- Sorunu yeniden oluşturabiliyorsanız API çağrısı yapın ve
502 Bad Gateway
hatası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
flowinfo
Hata 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 Content
durum 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 Content
yanı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.ResponseWithBody
vetarget
. Bu, hatanın arka uç sunucusunun bir204 No Content
veya205 Reset Content
durum 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.ResponseWithBody
X-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 Gateway
ile ilgili önemli bilgileri belirler. NGINX erişim günlüklerini kontrol edin:
/opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log
Konum: ORG, ENV ve PORT# gerçek değerlerle değiştirilir.
- Hata kodu içeren
502
hatası olup olmadığını görmek için arama yapın Belirli bir süre boyuncaprotocol.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
502
hatası 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.ResponseWithBody
X-Apigee-fault-source target
- X-Apigee-fault-code ve X-Apigee-fault-source değerlerinin
sırasıyla
protocol.http.ResponseWithBody
vetarget
. Bu, hatanın arka uç sunucusunun bir204 No Content
veya205 Reset Content
durum 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.ResponseWithBody
ise ve Hata Kaynağıtarget
değerine sahipse bu değer, arka ucun sunucu,204 No Content
veya205 Reset Content
durumuyla 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ı belirler.
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 Üstbilgisi 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-Encoding: gzip
< Date: Tue, 31 Jul 2021 21:41:13 GMT < Connection: keep-aliveBu örnekte, arka uç sunucusu
204 No Content
durum 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 Content
durum 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 Response
Bu örnekte, arka uç sunucusu Yanıt gövdesiyle birlikte
205 Reset Content
durum koduThis is a sample Response.
- Yukarıdaki örneklerin tümünde arka uç sunucusu
204 No Content
veya Yanıt gövdesi ve/veya başlıklardan birini içeren205 Reset Content
durum kodu Olası nedenler bölümünde belirtilmiştir. - Bu nedenle Apigee Edge hata koduyla birlikte
502 Bad Gateway
durum 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-Length
Content-Encoding
Transfer-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ı
502
hatasını yeniden oluşturmak için kullanılancurl
komutunu 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_log
Yer: 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