Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
Belirti
İstemci uygulaması 502 Bad Gateway
HTTP durum kodunu
Edge Mikro Ağ Geçidi'ndeki API çağrılarına yanıt olarak ECONNRESET
kodunu girmeniz gerekir.
Hata mesajı
İstemci aşağıdaki yanıt kodunu görür:
HTTP/1.1 502 Bad Gateway
Yanıt, aşağıdaki hata mesajını içerir:
{"message":"socket hang up","code":"ECONNRESET"}
Olası nedenler
Neden | Açıklama | Şunun için geçerli sorun giderme talimatları: |
---|---|---|
Canlı tutma zaman aşımı yanlış yapılandırılmış | Edge Microgateway ile hedef sunucu arasında yanlış yapılandırılmış canlı tutma zaman aşımları. | Edge Herkese Açık ve Private Cloud kullanıcıları |
Hedef sunucu bağlantıyı zamanından önce kapatıyor | Edge Mikro ağ geçidi gönderilirken hedef sunucu bağlantıyı zamanından önce kapatır kullanır. | Edge Herkese Açık ve Private Cloud kullanıcıları |
Sık kullanılan teşhis adımları
- Edge Microgateway günlüklerini kontrol edin:
/var/tmp/edgemicro-`hostname`-*.log
. ECONNRESET
koduyla ilgili502
hatası olup olmadığını görmek için arama yapın belirli bir süre boyunca (sorun geçmişte olduysa) veya herhangi bir talep varsa hâlâ502
ile başarısız oluyor.2021-06-23T03:52:24.110Z [error][0:8000][3][myorg][test] [emg_badtarget/flakey/hangup][][][6b089a00-d3d6-11eb-95aa-911f1ee6c684] [microgateway-core][][GET][502][socket hang up][ECONNRESET][]
- Günlük kaydı düzeyini
warn
veyainfo
olarak ayarladıysanız ikincisinde hedef sunucu ana makine adını ve bağlantı noktasını içeren bir[warn]
mesajı olmalıdır öğesine dokunun. Bu örnekteX.X.X.X:8080
değeridir ve bu değer kullanılabilir daha sonratcpdump
yakalayabilir.2021-06-23T03:52:24.109Z [warn][X.X.X.X:8080][3][myorg][test][emg_badtarget/flakey/hangup] [][][6b089a00-d3d6-11eb-95aa-911f1ee6c684][plugins-middleware] [targetRequest error][GET][][socket hang up][ECONNRESET][395]
[socket hang up][ECONNRESET]
hata kodu, hedef sunucunun , Edge Microgateway ile bağlantısını kapattı. Bu değer, günlüklerde aranabilir ve ne sıklıkta ortaya çıktığını gösterir.
Neden: Canlı tutma zaman aşımı yanlış yapılandırılmış
Teşhis
- Yaygın teşhis adımları bölümündeki adımları uygulayın ve
[socket hang up][ECONNRESET]
hata. Cevabınız evet ise,
tcpdump
:
tcpdump kullanma
- Şu cihazda Edge Microgateway ile arka uç sunucusu arasında bir
tcpdump
yakalayın: Edge Microgateway ana makine işletim sistemi için aşağıdaki komutu kullanın:tcpdump -i any -s 0 host TARGET_SERVER_HOSTNAME -w FILENAME.pcap
- Yakalanan
tcpdump
öğesini analiz edin:Örnek tcpdump çıkışı: ( resmi büyüt)
Yukarıdaki
tcpdump
örneğinde aşağıdakileri görebilirsiniz:- 250288 paketinde, istemci bir
POST
isteği gönderir. - 250371 paketinde, sunucu
200 OK
ile yanıt verir. - 250559 paketinde, istemci bir
ACK.
gönderir - 250560 paketinde, sunucu,
Continuation
mesajını alırsınız. - 250561 paketinde, istemci bir
ACK.
gönderir. - 262436 paketinde, sunucu,
FIN, ACK
istemci bağlantı kapatma işlemini başlatır. Bunun yaklaşık beş saniye olduğunu unutmayın saniye sonra yeniden çalışır. (250561). - 262441 paketinde, istemci başka bir
POST
gönderir. isteği gönderin. Ancak sunucu bağlantı. Paket içindeRST
ile yanıt verir 262441.
Bu örnekte, aynı bağlantı en az bir kez başarılı bir şekilde yeniden kullanıldı. Ancak, Sunucu, beş saniye sonra bağlantıyı kapatma işlemini başlatır. istemcinin yeni istek gönderdiği sırada olan boşta kalma süresidir. Bu arka uç sunucusunun canlı tutma zaman aşımının büyük olasılıkla istemcide ayarlanan değerdir. Bunu doğrulamak için bkz. Edge Microgateway ve arka uç sunucusundaki keep-alive zaman aşımını karşılaştırın.
- 250288 paketinde, istemci bir
Canlı tutma zaman aşımlarını karşılaştırma
- Edge Microgateway'in belirli bir canlı tutma zaman aşımı özelliği yoktur. Evet çalıştırıldığı işletim sistemi tarafından belirlenir. Yaygın örnekler arasında Windows, ve Docker container'larını kapsar.
- Bu, işletim sisteminde özelleştirilmiş olabilir. sistem yöneticinize başvurun. Linux işletim sistemlerinde varsayılan olarak bir "canlı yayın" özelliği vardır. iki saatlik zaman aşımına uğradı.
- Daha sonra, arka uç sunucunuzda yapılandırılan keep-alive zaman aşımı özelliğini kontrol edin. Haydi arka uç sunucunuzun 10 saniyelik bir değerle yapılandırıldığını varsayalım.
- İşletim sistemindeki canlı tutma zaman aşımı değerinin
arka uç sunucusunda Keep-alive zaman aşımı özelliğinin değerinden yüksek olduğundan
içeriyorsa
502
hatalarının nedeni budur.
Çözünürlük
Canlı tutma zaman aşımı özelliğinin, Edge'in yüklü olduğu işletim sisteminde her zaman daha düşük olduğundan emin olun. Mikro ağ geçidi arka uç sunucusuyla karşılaştırıldığında çalışıyor.
- Arka uç sunucusunda keep-alive zaman aşımı için ayarlanan değeri belirleyin.
- İşletim sisteminde canlı tutma zaman aşımı özelliği için uygun bir değer Keep-alive zaman aşımı özelliğinin arka uçta ayarlanan değerden daha düşük olması nedeniyle işletim sisteminiz için geçerli olan adımları uygulayarak) oluşturun.
En İyi Uygulama
Aşağı akış bileşenlerinin her zaman daha az canlı tutma zaman aşımına sahip olması önemle tavsiye edilir.
bu tür yarış koşullarından kaçınmak için yukarı akış sunucularında yapılandırılandan daha yüksek bir eşikle
502
hata. Her bir aşağı akış atlaması, her bir yukarı akış atlama değerinden daha düşük olmalıdır. Kenarda
Aşağıdaki yönergelerin kullanılması iyi bir uygulamadır:
İstemci uygulaması veya yük dengeleyicideki canlı tutma zaman aşımı, Edge Mikro Ağ Geçidi canlı tutma zaman aşımı.
Edge Mikro Ağ Geçidi'nde canlı tutma zaman aşımını yapılandırmak için
keep_alive_timeout
değeri~/.edgemicro/org-env-config.yaml
dosyaedgemicro: keep_alive_timeout: 65000
.- Edge Microgateway işletim sistemi canlı tutma zaman aşımı, hedeften az olmalıdır sunucu aktivasyonu zaman aşımına uğrar.
- Edge Microgateway'in önünde veya arkasında başka atlamalarınız varsa aynı kural tarafından uygulanır. Bu işlemi her zaman aşağı akış istemcisinin sorumluluğunda bağlantı kurmalısınız.
Neden: Hedef sunucu bağlantıyı zamanından önce kapatıyor
Teşhis
- Yaygın teşhis adımları bölümünde açıklanan adımları uygulayın ve
[socket hang up][ECONNRESET]
hatasını aldım. - Cevabınız evet ise, aşağıda açıklandığı şekilde
tcpdump
yardımıyla daha ayrıntılı araştırma yapın.[targetRequest error][GET][][socket hang up][ECONNRESET]
hata mesajı yukarıdaki örnekte, bu hatanın Edge Microgateway'de oluştuğunu belirtir , isteği arka uç (hedef) sunucuya gönderiyordu. Bir başka deyişle Edge Microgateway, Arka uç sunucusuna API isteği gönderildi ve yanıt bekleniyordu. Ancak arka uç Edge Microgateway bir yanıt almadan önce sunucu bağlantıyı aniden sonlandırdı. - Arka uç sunucu günlüklerinizi kontrol edin ve arka uç sunucusunun bağlantıyı aniden sonlandırmasına neden olduysa. Herhangi bir hata veya bilgilerini seçin, ardından Çözüm bölümüne gidin ve sorunu uygun şekilde düzeltin arka uç sunucunuzda.
- Arka uç sunucunuzda herhangi bir hata veya bilgi yoksa
Edge Microgateway sunucusunda
tcpdump
çıkışı:tcpdump -i any -s 0 host TARGET_SERVER_HOSTNAME -w FILENAME.pcap
- Yakalanan
tcpdump
öğesini analiz edin:Örnek tcpdump çıkışı: ( resmi büyüt)
Yukarıdaki
tcpdump
örneğinde aşağıdakileri görebilirsiniz:- 4. pakette, Edge Microgateway, hedefe bir
GET
isteği gönderdi sunucu. - 5. pakette, hedef sunucu
ACK
ile yanıt vererek isteği gönderin. - Ancak 6. pakette, hedef
sunucusu, bağlantının kapatılmasını başlatan bir
FIN, ACK
gönderir. - 7 ve sonraki paketlerde bağlantı karşılıklı olarak kapatılır. Bağlantı,
Edge Microgateway, yanıt gönderilmeden önce kapatıldığında HTTP
502
hatasını döndürür. geri gönderilir. - 8 paketinin zaman damgası
2021-06-23T03:52:24.110Z
(Edge Mikro Ağ Geçidi) için hatanın günlüğe kaydedildiği zaman damgasına karşılık gelir. günlükler. Günlük dosyalarındaki vetcpdump
içindeki zaman damgaları genellikle .
Çözünürlük
Arka uç sunucusunda sorunu uygun şekilde düzeltin.
Sorun devam ederse ve sorun giderme için yardıma ihtiyacınız varsa
502 Bad Gateway Error
veya Edge Microgateway'de sorun olduğundan şüpheleniyorsanız Teşhis bilgileri toplanmalıdır.Teşhis bilgileri toplanmalıdır
Yukarıdaki talimatları uygulamanıza rağmen sorun devam ederse aşağıdaki Apigee Edge Destek Ekibi ile iletişime geçin:
- Günlük dosyaları: Varsayılan klasör
/var/tmp
olsa da geçersiz kılınabilir anaconfig.yaml
dosyasında (logging > dir parameter
) yer alır. Evet sağlamadan öncelog > level
değerinininfo
olarak değiştirilmesi önerilir. Apigee Destek'e gönderebilirsiniz. - Yapılandırma dosyası: Edge Microgateway'in ana yapılandırması
YAML dosyasını varsayılan Edge Microgateway klasöründe (
$HOME/.edgemicro
) bulabilirsiniz. Birdefault.yaml
adlı varsayılan yapılandırma dosyası ve ardından her ortam için bir taneORG-ENV-config.yaml
. Lütfen bu dosyayı yükleyin tamamı için 100 TL'lik bir değer girilmelidir.
- 4. pakette, Edge Microgateway, hedefe bir