500 Dahili Sunucu Hatası - Arka Uç Sunucusu

Apigee Edge belgelerini görüntülüyorsunuz.
. Git: Apigee X belgeleri.
bilgi

Videolar

Video Açıklama
500 Dahili Sunucu Hatası - arka uçtan kaynaklanan Arka uç sunucusunun neden olduğu gerçek zamanlı bir 500 Internal Server Error ile birlikte hatayı giderme ve çözme adımları gösterilir.

Belirti

İstemci uygulaması şu mesajla birlikte 500 HTTP durum kodunu alır: API çağrılarına yanıt olarak Internal Server Error.

HTTP durum kodu 500 genel bir hata yanıtıdır. Bu, sunucunun isteği yerine getirmesini engelleyen beklenmedik bir durumla karşılaştı. Bu hata genellikle başka bir hata kodu uygun olmadığında sunucu tarafından döndürülür.

Hata mesajları

İstemci uygulaması aşağıdaki yanıt kodunu alır:

HTTP/1.1 500 Internal Server Error

Ayrıca, aşağıda gösterilene benzer bir hata mesajı da görebilirsiniz:

Örnek 1

Örnek Arka Uç Sunucusu Yanıtı 1

{"errorMessage":"Sorry either your e-mail or password didn't match.",
"errorParameters":"{}",
"errorCode":"500",
"errorKey":"INVALID_EMAILPASSWORD"}

Örnek 2

Örnek Arka Uç Sunucusu Yanıtı 2.

<Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <Body>
      <Error>
         <code>500</code>
         <message xml:lang="en-US">Not Authorised(e4138fa0-ec57).</message>
      </Error>
   </Body>
</Envelope>

Olası nedenler

500 Internal Server Error öğesi, pek çok nedeni olabilir. Bu başucu kitabında, yaygın adımları kullanarak sorun giderme ve bu sorunu çözme hakkında bilgi verilmektedir. hataya neden olabilir.

Bu sorunun olası nedenleri aşağıda açıklanmıştır:

Neden Açıklama Şunun için geçerli sorun giderme talimatları:
Arka uç sunucusunda hata Arka uç sunucusu bir nedenden dolayı başarısız olabilir. Edge Özel ve Herkese Açık Bulut 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

1. Prosedür: API İzlemeyi Kullanma

API Monitoring'i kullanarak hatayı teşhis etmek için:

  1. Apigee Edge kullanıcı arayüzünde uygun role sahip olur.
  2. Sorunu incelemek istediğiniz kuruluşa geçin.

  3. Analiz > API İzleme > İnceleme sayfası.
  4. Hataları gözlemlediğiniz zaman aralığını seçin.
  5. Zaman ile Hata Kodu'nun grafiğini çizin.

  6. Hata kodunun bulunduğu bir hücre seçin Gösterildiği şekliyle messaging.adaptors.http.flow.ErrorResponseCode aşağıda bulabilirsiniz:

    ( resmi büyüt)

  7. Hata koduyla ilgili bilgi messaging.adaptors.http.flow.ErrorResponseCode gösteriliyor aşağıda gösterilmiştir:

    ( resmi büyüt)

  8. 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)

  9. Günlükler penceresinde aşağıdaki ayrıntılara dikkat edin:
    • Mesaj Kimliği İste
    • Durum Kodu: 500
    • Hata Kaynağı: target
    • Hata Kodu: messaging.adaptors.http.flow.ErrorResponseCode

Trace

2. Prosedür: İzleme aracını kullanma

İzleme aracını kullanarak hatayı teşhis etmek için:

  1. İzleme oturumunu etkinleştirin ve
    • Hata kodu içeren 500 Internal Server Error hatasını bekleyin messaging.adaptors.http.flow.ErrorResponseCode veya
    • Sorunu yeniden oluşturabiliyorsanız API çağrısını yaparak sorunu yeniden oluşturun 500 Internal Server Error.
  2. Show all FlowInfos (Tüm Akış Bilgilerini Göster) seçeneğinin etkin olduğundan emin olun:

  3. Başarısız isteklerden birini seçin ve izini inceleyin.
  4. İzlemenin farklı aşamaları arasında gezinin ve hatanın nerede oluştuğunu bulun.
  5. Hatayı genellikle Hedef sunucudan alınan yanıttan sonraki bir akışta bulursunuz aşamasındaki aşamayı tamamlayın:

    ( resmi büyüt)

  6. İzlemedeki AX (Analytics Verilerinin Kaydedilen) Aşamasına gidin ve tıklayın.
  7. Aşama Ayrıntıları Yanıt Başlıkları bölümüne gidin ve X-Apigee-fault-code ve X-Apigee-fault-source değerleri ve Aşağıda gösterildiği gibi X-Apigee-Message-ID:

    ( resmi büyüt)

  8. X-Apigee-fault-code, X-Apigee-fault-source değerlerini not edin. ve X-Apigee-Message-ID:
  9. Yanıt başlıkları Değer
    X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode
    X-Apigee-fault-source target
    X-Apigee-Message-ID MESSAGE_ID

NGINX

3. Prosedür: NGINX erişim günlüklerini kullanma

NGINX erişim günlüklerini kullanarak hatayı teşhis etmek için:

  1. Private Cloud kullanıcısıysanız aşağıdakileri belirlemek için NGINX erişim günlüklerini kullanabilirsiniz: HTTP 500 Internal Server Error ile ilgili önemli bilgileri girin.
  2. NGINX erişim günlüklerini kontrol edin:

    /opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log

  3. Hata kodu içeren 500 hatası olup olmadığını görmek için arama yapın Belirli bir sürede messaging.adaptors.http.flow.ErrorResponseCode (sorun ) veya 500 ile hâlâ başarısız olan istekler varsa bunları kontrol edin.
  4. X-Apigee-fault-code eşleştirmesinde 500 hatası bulursanız messaging.adaptors.http.flow.ErrorResponseCode değerini, ardından X-Apigee-fault-source.'un değerini belirleyin.

    NGINX erişim günlüğünden örnek 500 hatası:

    ( resmi büyüt)

    NGINX erişim günlüğünden alınan yukarıdaki örnek giriş, X-Apigee-fault-code ve X-Apigee-fault-source:

    Üst bilgiler Değer
    X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode
    X-Apigee-fault-source target

Neden: Arka uç sunucusunda hata

Teşhis

Arka uç sunucusunun yanıtladığı 500 Internal Server Error şöyle olabilir: çeşitli nedenlerden kaynaklanır. Her bir durumu ayrı ayrı teşhis etmeniz gerekir.

  1. API Monitoring kullanılırken gözlemlenen hatanın Hata Kodu, Hata Kaynağı'nı belirleyin. Trace aracı veya Yaygın teşhis adımlarında açıklandığı üzere NGINX erişim günlükleri.
  2. Hata Kaynağı target ve Hata Kodu messaging.adaptors.http.flow.ErrorResponseCode ise bu, hata arka uç sunucusu tarafından döndürülür.
  3. Sorunun nedenini teşhis etmek için aşağıdaki adımlardan birini kullanabilirsiniz:

    Trace

    Trace'i kullanma:

    Hatayla ilgili bir İzleme oturumunuz varsa aşağıdaki adımları uygulayın:

    1. Trace'te, başarısız olan API isteğini seçin. 500 Internal Server Error
    2. Şu menüden Hedef sunucudan alınan yanıt aşamasını seçin: aşağıdaki şekilde gösterildiği gibi başarısız API isteği:

      ( resmi büyüt)

    3. Aşama Ayrıntıları bölümüne gidin ve Yanıt İçeriği,arka uç sunucusundan alınan yanıtı içerir.

      Örnek Yanıt İçeriği:

      <Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
         <Body>
            <Error>
               <code>500</code>
               <message xml:lang="en-US">Not Authorised(e4138fa0-ec57).</message>
            </Error>
         </Body>
      </Envelope>
      

      Yukarıdaki yanıtta, arka uç sunucusundan alınan hata mesajının Yetkili Değil. Bu, kullanıcının geçersiz bir ve bu nedenle bu hatayı alıyorlar.

    ziyaret edin.

    Arka uç sunucuya çağrı yap

    Arka uç sunucusuna doğrudan çağrı yapma:

    Arka uç sunucusuna doğrudan çağrı yapabilir ve şunları yapabilirsiniz:

    • Aynı 500 Internal Server Error olup olmadığını kontrol edin Apigee Edge üzerinden istek yapıldığında alınan yanıt
    • Arka uç sunucusundan alınan hata mesajını (yanıtı) kontrol edin

    Arka uç sunucusuna doğrudan çağrı yapmak için aşağıdaki adımları uygulayın:

    1. Gerekli tüm başlıkları, sorgu parametrelerini ve isteğin bir parçası olarak arka uç sunucusuna iletilmesi gereken kimlik bilgileridir.
    2. Arka uç hizmeti herkesin erişimine açıksa curl komutu, Postman veya başka bir REST İstemcisi'ni kullanarak doğrudan arka uç sunucu API'sine bağlanmalıdır.
    3. Arka uç sunucusuna yalnızca İleti İşleyenler tarafından erişilebiliyorsa curl komutunu, Postman'ı veya başka bir REST İstemcisini kullanın ve arka uç sunucu API'sini kullanabilirsiniz.

    4. Arka uç hizmetinin gerçekten 500 Internal Server Error döndürüp döndürmediğini doğrulayıp arka uç sunucusu tarafından döndürülen hata mesajını (yanıt) ve bu hatanın nedenini belirleyin.

    Arka uç sunucu günlükleri

    Arka uç sunucu günlüklerini kullanma

    1. Arka uç sunucu günlüklerini inceleyin ve hatayla ilgili daha fazla ayrıntı almaya çalışın. ortaya çıkarmanıza yardımcı olabilir.
    2. Mümkünse daha fazla ayrıntı almak için arka uç sunucusunda hata ayıklama modunu etkinleştirin hata ve hata hakkında
  4. Şunu kullanıp kullanmadığınızı kontrol edin: başarısız API Proxy'sinin belirli hedef uç noktasında proxy zincirlemesi kullanımı; yani hedef sunucu/hedef uç noktası Apigee Edge. Bunu belirlemek için:

    1. Başarısız isteğin izini biliyorsanız İstek gönderildi seçeneğini belirleyin aşamasını belirleyin ve Curl'ü Göster'i tıklayın.

    2. Açılan Hedef Sunucuya Gönderilen İsteğin Kısmı penceresi açılır. hedef sunucu ana makine takma adını belirleyebilir.
    3. API Proxy'nizin hedef uç noktasını inceleyin ve arka uç sunucusunun Hedef sunucudaki URL veya ana makine adı başka bir Proxy'ye veya kendi proxy'nize işaret ediyor arka uç sunucusuna gidin.
    4. Hedef sunucu ana makine takma adı, bir sanal ana makine takma adına işaret ediyorsa proxy zincirlemesidir. Bu durumda, 500 Internal Server Error öğesine gerçekten neyin neden olduğunu belirleyene kadar zincirlenmiş proxy'yi kontrol eder. Bu durumlarda 500 Internal Server Error, diğer aşamalarda da diğer zincirli proxy'lerde görülür. bu başucu kitabında veya 500 Dahili Sunucu Hatası başucu kitabı.
    5. Hedef sunucu ana makine takma adı arka uç sunucunuzu işaret ediyorsa Çözüm.

Çözünürlük

500 hatasının arka uç sunucusundan geldiği tespit edilirse sorunu uygun şekilde düzeltmek için arka uç sunucu ekibinizle birlikte çalışın.

Yukarıda açıklanan örnekte, sorunları düzeltmek için kullanıcılardan geçerli kimlik bilgileri iletmelerini istemeniz gerekebilir. çözmüştük.

Dikkat edilmesi gereken önemli noktalar

  1. 500 Internal Server Error için arka uç sunucusu tarafından döndürülen asıl hata mesajı, yalnızca başarısız olan işlemi izleme oturumunu yakaladıysanız kabul edersiniz.
  2. Arka uç sunucu yanıtı; API Monitoring, NGINX Erişim Günlükleri veya Güvenlik nedeniyle İleti İşleyen günlükleri.
  3. Daha fazla bilgi edinmek için arka uç sunucu günlüklerini inceleyebilir veya arka uçta hata ayıklama modunu etkinleştirebilirsiniz 500 Internal Server Error hakkında ayrıntılı bilgi edinin ve/veya döndürülen hata mesajını görüntüleyin arka uç sunucusu tarafından oluşturulur.

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.

Herkese açık Cloud kullanıcısıysanız aşağıdaki bilgileri sağlayın:

  • Kuruluş adı
  • Ortam adı
  • API Proxy adı
  • 500 hatasını yeniden oluşturmak için curl komutunu tamamlayın
  • 500 Internal Server Error ile istekleri içeren izleme dosyası
  • 500 hataları şu anda ortaya çıkmıyorsa zaman belirtin geçmişte 500 hatanın oluştuğu saat dilimi bilgileriyle birlikte dönem.

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
  • Gözlemlediğiniz kuruluş, ortam adı ve API proxy adı 500 hata
  • API proxy paketi
  • 500 Internal Server Error ile istekleri içeren 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# gerçek değerlerle değiştirilir.

  • Mesaj İşleyici sistem günlükleri /opt/apigee/var/log/edge-message-processor/logs/system.log.
  • 500 hatalarının meydana geldiği saat dilimi bilgilerini içeren dönem.