Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
Belirti
İstemci uygulaması şu mesajla birlikte 504 HTTP durum kodunu alır: API çağrılarına yanıt olarak "Ağ Geçidi Zaman Aşımı".
Bu hata yanıtı, istemcinin bir API çağrısı yürütülürken Apigee Edge'den veya arka uç sunucusundan zamanında yanıt almadığını gösterir.
Hata Mesajı
İstemci uygulaması aşağıdaki yanıt kodunu alır:
HTTP/1.1 504 Gateway Timeout
Bu kodun ardından aşağıdakine benzer bir hata mesajı gösterilebilir:
<html> <head><title>504 Gateway Timeout</title></head> <body bgcolor="white"> <center><h1>504 Gateway Timeout</h1></center> </body> </html>.
Ağ geçidi zaman aşımlarının nedeni nedir?
Apigee Edge üzerinden yapılan bir API isteğinin tipik yolu İstemci -> Yönlendirici -> Mesaj İşleyici -> Arka Uç Sunucusu aşağıdaki şekilde gösterildiği gibidir:
İstemci uygulaması, yönlendiriciler ve Mesaj İşleyicileri, uygun zaman aşımı değerleriyle yapılandırılmıştır. Apigee Edge, her API isteği için zaman aşımı değerlerine dayalı olarak belirli bir süre içinde yanıt verilmesini bekler. Yanıt, belirtilen süre içinde alınmazsa bir 504 Ağ Geçidi Zaman Aşımı yanıtı döndürülür.
Olası Nedenler
Apigee Edge'de arka uç sunucusundan gelen 504 Ağ Geçidi Zaman Aşımı yanıtının tipik nedeni şudur:
Neden | Açıklama | Aşağıdakiler İçin Sorun Giderme Talimatları: |
---|---|---|
Arka Uç Sunucu, 504 Ağ Geçidi Zaman Aşımı ile yanıt veriyor | Arka uç sunucusu zaman aşımına uğrar ve İleti İşleyici'ye bir 504 Ağ Geçidi Zaman Aşımı yanıtı döndürür. | Edge Özel ve Herkese Açık Bulut Kullanıcıları |
Arka Uç Sunucusu, 504 Ağ Geçidi Zaman Aşımı ile yanıt veriyor
Arka uç sunucusu, 504 Ağ Geçidi Zaman Aşımı olan bir HTTP yanıt koduyla yanıt verebilir.
Teşhis
Bu bölümde, 504 Ağ Geçidi Zaman Aşımının nasıl doğru şekilde teşhis edileceği açıklanmaktadır. Hem Özel hem de Özel İşlemler için Herkese açık Cloud kullanıcıları listelenir.
1. Prosedür: Trace'i Kullanma (Private ve Herkese Açık Bulut kullanıcıları)
- Etkilenen API için Apigee kullanıcı arayüzünde Trace'i etkinleştirin.
- Arka uç sunucusuna bir istek gönderin.
- Başarısız olan API isteğinde Trace'te arka uç sunucusundan 504 yanıtı gösteriliyorsa 504 Ağ Geçidi Zaman Aşımı'nın nedeni arka uç sunucusudur.
- Yanıt süresini belirlemek için Yanıt alınan hedef sunucu'yu tıklayın.
aşamalarından biridir. Gösterilen örnekte geçen süre 60.004 ms'dir:
Aşama Ayrıntıları bölümünde ek bilgiler sağlanır:
- Arka uç sunucusundan alınan 504 Ağ Geçidi Zaman Aşımı yanıtını vurgular.
- Yanıt İçeriği bölümünde, arka uç sunucusuna gidin. Daha önce de belirtildiği gibi, yanıt yükünün biçimi ve içeriği farklılık gösterebilir. arka uç sunucu uygulamasına bağlı olarak değişebilir.
- Yanıt Başlığı > Sunucu bölümünde, yanıtın kaynağı gösterilebilir.
- Analytics verilerini görüntülemek ve teşhisi onaylamak için Kayıtlı Analytics Verileri'ni tıklayın.
aşağıdaki şekilde gösterildiği gibi, Trace'deki
Aşama Ayrıntıları'nın Yanıt Başlıkları bölümünde
X-Apigee-fault-code
veX-Apigee-fault-source
, şurada gösterildiği gibi: aşağıdaki resme bakın:Bu alanlar aşağıdaki tabloda gösterilen değerleri içeriyorsa 504 hatası yanıtı yeni bir kod oluşturun:
Yanıt Başlıkları Değer X-Apigee-fault-source hedef X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode -
için kontrol et
proxy zinciri oluşturma. Arka uç sunucusunun başka bir proxy çağırıp çağırmadığını belirlemek için şu adımları uygulayın
Apigee'de:
- İstek hedef sunucuya gönderildi aşamasına dönün ve Arka uç sunucusu ana makine takma adını görüntülemek için Curl'ü göster düğmesi.
- Arka uç sunucu ana makine takma adı bir sanal ana makine takma adına işaret ediyorsa proxy zinciri yer. 504 Ağ Geçidi'nin nedenini teşhis etmek üzere her zincirli proxy için yukarıdaki adımları tekrarlayın Zaman aşımı hatası yanıtı. 504 Zincirli proxy'lerde diğer aşamalarda meydana gelen ağ geçidi zaman aşımları istek/yanıt döngüsü, bu başucu kitabına göz atın.
- Arka uç sunucu ana makine takma adı arka uç sunucusunu işaret ediyorsa Çözüm.
2. Prosedür: Doğrudan arka uç sunucu API'sini çağırma (Herkese açık ve Private Cloud kullanıcıları)
Karşılaşılan aynı 504 Ağ Geçidi Zaman Aşımı yanıtı davranışını onaylamak için doğrudan arka uç sunucusunu çağırın Apigee Edge üzerinden talep edildiğinde.
- Şu işlemleri gerçekleştirmek için gereken tüm gerekli üstbilgilere, sorgu parametrelerine ve kimlik bilgilerine sahip olduğunuzdan emin olun: arka uç sunucusuna iletilmelidir.
- Arka uç hizmeti herkesin erişimine açıksa
curl
komutunu kullanabilirsiniz. Postman ya da başka bir REST istemcisini kullanarak arka uç sunucu API'sini doğrudan çağırabilir. - Arka uç sunucusuna yalnızca İleti İşleyenler tarafından erişilebiliyorsa
curl
komutu, Postman veya başka bir REST İstemcisi'ni kullanarak arka uç sunucu API'sini doğrudan Mesaj İşleyici. - Arka uç hizmeti bir 504 Ağ Geçidi Zaman Aşımı yanıtı döndürürse Çözüm.
3. Prosedür: NGINX Erişim Günlüklerini Kontrol Edin (yalnızca Private Cloud kullanıcıları)
NGINX erişim günlükleri, 504 hata yanıtının arka uç sunucusu tarafından gönderilip gönderilmediğini belirlemeye yardımcı olabilir. Bu, özellikle sorun geçmişte gerçekleştiyse, zaman zaman ortaya çıkıyorsa veya sorun tespit edilemiyorsa yararlı olur kullanabilirsiniz. NGINX erişim günlüklerini kontrol etmek için şu adımları uygulayın:
- Bu komutu kullanarak NGINX erişim günlüklerini görüntüleyin:
/opt/apigee/var/log/edge-router/nginx/ ORG ~ENV.PORT# _access_log
. - Etkilenen API proxy'si için 504 hata yanıtlarını kontrol edin. Belirli bir zaman dilimi, veya bir 504 hatası yanıtıyla isteklerin hâlâ başarısız olup olmadığını belirleyebilirsiniz.
- Herhangi bir 504 hata yanıtı varsa hata yanıtının arka uç sunucusuna gidin.
- Proxy zincirini kontrol etmek için etkilenen API proxy'sini inceleyin Yani arka uç sunucusu/hedef uç noktası, Apigee'de başka bir proxy'yi çağırıyordur. API proxy'si proxy zincirini kullanarak , 504 Ağ Geçidi Zaman Aşımı'nın nedenini teşhis etmek üzere her zincirli proxy için yukarıdaki adımları tekrarlayın hata yanıtı. 504 Diğer aşamalardaki zincirli proxy'lerde ortaya çıkan ağ geçidi zaman aşımları teşhis edilebilir bu başucu kitabını kullanın.
- yoksa proxy zincirini kullanıyorsanız ve 504 hata yanıtının arka uç sunucusundan kaynaklandığını Çözüm bölümüne geçin.
Aşağıdaki şekilde hedef sunucu:
X-Apigee-fault-source
ve X-Apigee-fault-code
alanları
değerlerine bağlı olarak, 504 yanıtı arka uç sunucusundan alınır:
Yanıt Başlıkları | Değer |
---|---|
X-Apigee-fault-source | hedef |
X-Apigee-fault-code | messaging.adaptors.http.flow.ErrorResponseCode |
4. Prosedür: API Monitoring'i Kullanma (yalnızca herkese açık Cloud kullanıcıları)
API İzleme, sorunları diğerlerinden ayırarak Hata, performans ve gecikme sorunlarını ve bunların kaynağını (ör. geliştirici uygulamaları) ve kaynaklarını hızla teşhis etmek için API proxy'leri, arka uç hedefleri veya API platformu.
Örnek senaryoyu inceleyin . Örneğin, 504 durum kodlarının sayısı belirli bir eşiği aştığında yöneticilerin bilgilendirilmesi için bir uyarı ayarlayın.
Çözünürlük
Yukarıdaki teşhis prosedürlerini kullanarak, sorunları gidermek için arka uç sunucu ekibiyle birlikte çalışabilirsiniz. arka uç sunucusundaki sorunu çözeceksiniz. Buna arka uç sunuculardaki zaman aşımlarını ayarlamak veya zaman aşımına uğrar.
Teşhis Bilgilerini Toplama
Sorun devam ederse aşağıdaki teşhis bilgilerini Apigee Destek Ekibi ile paylaşın.
Herkese Açık Bulut kullanıcısıysanız aşağıdaki bilgileri sağlayın:
- Kuruluş Adı
- Ortam Adı
- API Proxy Adı
- 504 hata yanıtını yeniden oluşturmak için kullanılan
curl
komutunu tamamlayın - 504 Ağ Geçidi Zaman Aşımı hata yanıtı alan API istekleri içeren 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
- 504 Ağ Geçidi Zaman Aşımı hata yanıtı alan API isteklerine sahip izleme dosyası
- NGINX erişim günlükleri
/opt/apigee/var/log/edge-router/nginx/ ORG ~ENV.PORT# _access_log
. - İleti işleyen günlükleri
/opt/apigee/var/log/edge-message-processor/logs/system.log
.