Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Videolar
Video | Açıklama |
---|---|
500 Dahili Sunucu Hatası - arka uçtan kaynaklanıyor | Arka uç sunucusunun neden olduğu gerçek zamanlı bir 500 Internal Server Error ile birlikte hatayı giderme ve çözme adımları gösterir. |
Belirti
İstemci uygulaması, API çağrılarına yanıt olarak Internal Server Error
mesajıyla birlikte 500
HTTP durum kodunu alır.
500
HTTP durum kodu, genel bir hata yanıtıdır. Bu, sunucunun isteği yerine getirmesini engelleyen beklenmeyen bir durumla karşılaştığı anlamına gelir. 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ğıdakine benzer bir hata mesajı da görebilirsiniz:
1. Örnek
Örnek Arka Uç Sunucu 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
, arka uç sunucusu tarafından birçok nedenden dolayı döndürülebilir. Bu başucu kitabında, yaygın adımlardan yararlanarak nasıl sorun giderileceği ve bu hatanın nedeninden bağımsız olarak nasıl çözüleceği açıklanmaktadır.
Bu sorunun olası nedenleri şunlardır:
Neden | Açıklama | Şunun için geçerli sorun giderme talimatları: |
---|---|---|
Arka uç sunucuda hata | Arka uç sunucusu bir nedenden ötürü başarısız olabilir. | Edge Özel ve Genel Bulut kullanıcıları |
Yaygın 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 Monitoring'i Kullanma
API Monitoring'i kullanarak hatayı teşhis etmek için:
- Uygun role sahip bir kullanıcı olarak Apigee Edge kullanıcı arayüzünde oturum açın.
Sorunu incelemek istediğiniz kuruluşa geçin.
- Analiz > API İzleme > Araştır sayfasına gidin.
- Hataları gözlemlediğiniz belirli zaman aralığını seçin.
Hata Kodu'nu Zamana göre çizin.
Aşağıda gösterildiği gibi
messaging.adaptors.http.flow.ErrorResponseCode
hata koduna sahip bir hücre seçin:messaging.adaptors.http.flow.ErrorResponseCode
hata kodu ile ilgili bilgi aşağıda gösterildiği gibi görüntülenir:Günlükleri görüntüle 'yi tıklayın ve başarısız isteğin satırını genişletin.
- Günlükler penceresinde aşağıdaki ayrıntıları dikkate alın:
- İstek İletisi Kimliği
- Durum Kodu:
500
- Hata Kaynağı:
target
- Hata Kodu:
messaging.adaptors.http.flow.ErrorResponseCode
Trace
2. Prosedür: İzleme aracını kullanma
Hatayı İzle aracını kullanarak teşhis etmek için:
- İzleme oturumunu ve aşağıdakilerden birini etkinleştirin:
messaging.adaptors.http.flow.ErrorResponseCode
hata koduna sahip500 Internal Server Error
hatasının oluşmasını bekleyin veya- Sorunu yeniden oluşturabiliyorsanız sorunu yeniden oluşturmak için API çağrısı yapın
500 Internal Server Error
Tüm FlowInfo'ları göster seçeneğinin etkin olduğundan emin olun:
- Başarısız isteklerden birini seçip izi inceleyin.
- İzin farklı aşamaları arasında gezinin ve hatanın nerede gerçekleştiğini bulun.
Hatayı genellikle aşağıda gösterildiği gibi Hedef sunucudan alınan yanıt aşamasından sonraki bir akışta bulabilirsiniz:
- İzdeki AX (Analytics Data Recorded) Aşamalı Sunumu'na gidin ve bunu tıklayın.
Aşama Ayrıntıları Yanıtı Başlıkları bölümüne ilerleyip X-Apigee-fault-code, X-Apigee-fault-source ve X-Apigee-Message-ID değerlerini aşağıda gösterildiği gibi belirleyin:
- X-Apigee-fault-code, X-Apigee-fault-source ve X-Apigee-Message-ID değerlerini not edin:
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:
- Private Cloud kullanıcısıysanız HTTP
500 Internal Server Error
ile ilgili önemli bilgileri belirlemek için NGINX erişim günlüklerini kullanabilirsiniz. NGINX erişim günlüklerini kontrol edin:
/opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log
- Belirli bir süre boyunca
messaging.adaptors.http.flow.ErrorResponseCode
hata koduna sahip500
hatası (sorun geçmişte gerçekleştiyse) veya500
nedeniyle başarısız olmaya devam eden bir istek olup olmadığını görmek için arama yapın. X-Apigee-fault-code değeriyle eşleşen X-Apigee-fault-code özelliğinde
500
hatası bulursanız X-Apigee-fault-code değerinin değerini belirleyin.NGINX erişim günlüğünden örnek 500 hatası:
NGINX erişim günlüğünden yukarıdaki örnek giriş, X-Apigee-fault-code ve X-Apigee-fault-code için aşağıdaki değerlere sahiptir:
Üst bilgiler Değer X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode
X-Apigee-fault-source target
Neden: Arka uç sunucuda hata
Teşhis
Arka uç sunucusunun yanıt verdiği 500 Internal Server Error
birkaç nedenden kaynaklanabilir. Her durumu ayrı ayrı teşhis etmeniz gerekir.
- API İzleme, İzleme aracı veya NGINX erişim günlükleri kullanılarak gözlemlenen hata için Yaygın teşhis adımları bölümünde açıklandığı şekilde Hata Kodu, Hata Kaynağı belirleyin.
- Hata Kaynağı
target
ve Hata Kodumessaging.adaptors.http.flow.ErrorResponseCode
ise bu durum hatanın arka uç sunucusu tarafından döndürüldüğünü gösterir. - Sorunun nedenini teşhis etmek için aşağıdaki adımlardan birini kullanabilirsiniz:
Trace
Trace'i kullanma:
Hata nedeniyle bir İzleme oturumunuz varsa aşağıdaki adımları uygulayın:
- Trace'te,
500 Internal Server Error
ile başarısız olan API isteğini seçin. Aşağıda gösterildiği gibi, başarısız olan API isteğinden Hedef sunucudan alınan yanıt aşamasını seçin:
Aşama Ayrıntıları bölümüne ilerleyin ve arka uç sunucusundan gelen yanıtı içeren Yanıt İçeriği'ni kontrol edin.
Ö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 gelen hata mesajının Yetkilendirilmedi olduğuna dikkat edin. Bu durum, kullanıcının geçersiz kimlik bilgilerini geçmiş olabileceğini ve bu yüzden bu hatayı aldığını gösterir.
Arka uç sunucusunu ara
Arka uç sunucuya doğrudan çağrı yapma:
Arka uç sunucusuna doğrudan bir çağrı yapabilir ve şunları yapabilirsiniz:
- İstek Apigee Edge üzerinden yapıldığında alınan aynı
500 Internal Server Error
yanıtı alıp almadığınızı doğrulayın - 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:
- Gerekli tüm üst bilgilere, sorgu parametrelerine ve isteğin bir parçası olarak arka uç sunucusuna iletilmesi gereken kimlik bilgilerine sahip olduğunuzdan emin olun.
- Arka uç hizmeti herkesin erişimine açıksa
curl
komutunu, Postman'ı veya başka bir REST istemcisini kullanabilir ve arka uç sunucu API'sini doğrudan çağırabilirsiniz. Arka uç sunucuya yalnızca Mesaj İşleyicileri tarafından erişilebiliyorsa
curl
komutunu, Postman'ı veya başka bir REST istemcisini kullanabilir ve arka uç sunucu API'sini doğrudan Mesaj İşleyici'den çağırabilirsiniz.- 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) kontrol edip bu hatanın nedenini belirleyin.
Arka uç sunucusu günlükleri
Arka uç sunucu günlüklerini kullanma
- Arka uç sunucu günlüklerini inceleyin, hata ve nedeni hakkında daha fazla bilgi edinmeye çalışın.
- Mümkünse hata ve nedeni hakkında daha fazla ayrıntı almak için arka uç sunucusunda hata ayıklama modunu etkinleştirin.
- Trace'te,
Başarısız API Proxy'sinin belirli hedef uç noktasında (yani, hedef sunucu/hedef uç noktanın Apigee Edge'de başka bir proxy çağırıp çağırmadığı) proxy zincirleme bağlantı kullanıp kullanmadığınızı kontrol edin. Bunu belirlemek için:
Başarısız isteği izlediyseniz İstek hedef sunucuya gönderildi aşamasına gidin ve Show Curl'yi (Curl'yi Göster) tıklayın.
- Hedef sunucu ana makine takma adını belirleyebileceğiniz Curl for Request to Target Server (Hedef Sunucuya Gönderilen İstek İçin Curl) penceresi açılır.
- API Proxy'nizin hedef uç noktasını inceleyin ve arka uç sunucu URL'sinin veya hedef sunucudaki ana makine adının başka bir Proxy'ye veya kendi arka uç sunucunuza işaret edip etmediğini kontrol edin.
- Hedef sunucu ana makine takma adı bir sanal ana makine takma adına işaret ediyorsa bu, proxy zincirlemedir. Bu durumda,
500 Internal Server Error
hatasına neyin neden olduğunu belirleyene kadar zincirleme proxy için yukarıdaki adımların tümünü tekrarlamanız gerekir. Bu durumlarda500 Internal Server Error
, diğer aşamalardaki diğer zincirleme proxy'lerde de ortaya çıkabilir. Bu başucu kitabında veya 500 Dahili Sunucu Hatası başucu kitabında verilen talimatlar uygulanarak teşhis edilebilir ve çözülebilir. - Hedef sunucu ana makine takma adı arka uç sunucunuzu işaret ediyorsa Çözüm'e gidin.
Çözünürlük
500
hatasının arka uç sunucudan geldiği doğrulanırsa arka uç sunucu ekibinizle birlikte çalışarak sorunu uygun şekilde düzeltin.
Yukarıda açıklanan örnekte, bu sorunu düzeltmek için kullanıcılardan geçerli kimlik bilgilerini iletmelerini istemeniz gerekebilir.
Dikkat edilmesi gereken önemli noktalar
500 Internal Server Error
için arka uç sunucusu tarafından döndürülen gerçek hata mesajı, yalnızca başarısız istekler için izleme oturumunu kaydettiyseniz görüntülenebilir.- Arka uç sunucu yanıtı, güvenlik nedeniyle API Monitoring, NGINX Erişim Günlükleri veya Mesaj İşleyici günlüklerine kaydedilmez.
500 Internal Server Error
hakkında daha fazla bilgi almak ve/veya arka uç sunucusu tarafından döndürülen hata mesajını görüntülemek için arka uç sunucu günlüklerini inceleyebilir veya arka uçta hata ayıklama modunu etkinleştirebilirsiniz.
Teşhis bilgileri toplanmalıdır
Yukarıdaki talimatları uyguladıktan sonra da sorun devam ederse aşağıdaki teşhis bilgilerini toplayın ve Apigee Edge Destek Ekibi ile iletişime geçin.
Herkese Açık Bulut 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çincurl
komutunu tamamlayın500 Internal Server Error
içeren istekleri içeren izleme dosyası- Şu anda
500
hataları ortaya çıkmıyorsa geçmişte500
hatalarının meydana geldiği zaman dilimi bilgisini içeren dönemi belirtin.
Private Cloud kullanıcısıysanız aşağıdaki bilgileri sağlayın:
- Başarısız istekler için gözlemlenen tam hata mesajı
500
hatalarını gözlemlediğiniz kuruluş, ortam adı ve API proxy adı- API proxy paketi
500 Internal Server Error
içeren 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 oluştuğu saat dilimi bilgilerinin yer aldığı dönem.