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ır | Arka uç sunucusundan kaynaklanan 500 Internal Server Error ile ilgili gerçek zamanlı bir örnek gösterir ve hatayı giderme adımlarını açıklar. |
Belirti
İstemci uygulaması, API çağrılarına yanıt olarak 500 HTTP durum koduyla birlikte Internal Server Error mesajını alır.
500 HTTP durum kodu, genel bir hata yanıtıdır. Bu, sunucunun isteği yerine getirmesini engelleyen beklenmedik 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ğıda gösterilene benzer bir hata mesajı da görebilirsiniz:
1. örnek
Örnek Arka Uç Sunucusu Yanıtı #1
{"errorMessage":"Sorry either your e-mail or password didn't match.",
"errorParameters":"{}",
"errorCode":"500",
"errorKey":"INVALID_EMAILPASSWORD"}2. örnek
Örnek Arka Uç Sunucu 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, çeşitli nedenlerle arka uç sunucusu tarafından döndürülmüş olabilir. Bu oyun planında, yaygın adımları kullanarak sorun giderme ve bu hatayı nedeninden bağımsız olarak çözme yöntemleri açıklanmaktadır.
Bu sorunun olası nedenleri şunlardır:
| Neden | Açıklama | Aşağıdaki ürünler için geçerli sorun giderme talimatları |
|---|---|---|
| Arka uç sunucusunda hata | Arka uç sunucusu bir nedenden dolayı başarısız olabilir. | Edge Private ve Public Cloud kullanıcıları |
Sık karşılaşı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 İzleme'yi kullanma
API İzleme'yi kullanarak hatayı teşhis etmek için:
- Apigee Edge kullanıcı arayüzünde oturum açın. Uygun bir role sahip bir kullanıcı olarak oturum açmanız gerekir.
Sorunu incelemek istediğiniz kuruluşa geçin.
- Analyze > API Monitoring > Investigate (Analiz > API İzleme > İnceleme) sayfasına gidin.
- Hataları gözlemlediğiniz belirli zaman aralığını seçin.
Hata Kodunu Zaman ile karşılaştırın.
Aşağıda gösterildiği gibi, hata kodunu
messaging.adaptors.http.flow.ErrorResponseCodeiçeren bir hücre seçin:
Hata kodu
messaging.adaptors.http.flow.ErrorResponseCodeile ilgili bilgiler 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ı not edin:
- İstek İleti Kimliği
- Durum Kodu:
500 - Hata Kaynağı:
target - Hata Kodu:
messaging.adaptors.http.flow.ErrorResponseCode
Trace
2. Prosedür: Trace aracını kullanma
İzleme aracını kullanarak hatayı teşhis etmek için:
- İzleme oturumunu etkinleştirin ve şunlardan birini yapın:
500 Internal Server Errorhata kodlumessaging.adaptors.http.flow.ErrorResponseCodehatası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'in etkinleştirildiğinden emin olun:

- Başarısız olan isteklerden birini seçip izlemeyi inceleyin.
- İzlemenin farklı aşamalarında gezinin ve hatanın nerede oluştuğunu bulun.
Hatayı genellikle aşağıdaki örnekte gösterildiği gibi Hedef sunucudan yanıt alındı aşamasından sonraki bir akışta görürsünüz:

- İzleme işleminde AX (Analytics Verileri Kaydedildi) aşamasına gidin ve bu aşamayı tıklayın.
Phase Details Response Headers (Aşama Ayrıntıları Yanıt Başlıkları) bölümüne gidin ve aşağıdaki gibi X-Apigee-fault-code, X-Apigee-fault-source ve X-Apigee-Message-ID değerlerini 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:
- Özel bulut kullanıcısıysanız HTTP
500 Internal Server Errorile ilgili temel 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
500hata koduylamessaging.adaptors.http.flow.ErrorResponseCodehata olup olmadığını (sorun geçmişte yaşandıysa) veya500ile hâlâ başarısız olan istekler olup olmadığını arayın. X-Apigee-fault-code'un
messaging.adaptors.http.flow.ErrorResponseCodedeğeriyle eşleşen500hataları bulursanız X-Apigee-fault-source değerini belirleyin.NGINX erişim günlüğünden örnek 500 hatası:
NGINX erişim günlüğündeki yukarıdaki örnek girişte, X-Apigee-fault-code ve X-Apigee-fault-source için aşağıdaki değerler yer almaktadır:
Üst bilgiler Değer X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCodeX-Apigee-fault-source target
Neden: Arka uç sunucusunda hata
Teşhis
Arka uç sunucusu tarafından verilen 500 Internal Server Error yanıtı çeşitli nedenlerden kaynaklanabilir. Her durumu ayrı ayrı teşhis etmeniz gerekir.
- Yaygın teşhis adımları bölümünde açıklandığı gibi, API izleme, izleme aracı veya NGINX erişim günlüklerini kullanarak gözlemlenen hatanın Hata Kodu, Hata Kaynağı'nı belirleyin.
- Hata Kaynağı
targetve Hata Kodumessaging.adaptors.http.flow.ErrorResponseCodeise 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:
Başarısızlıkla ilgili bir izleme oturumunuz varsa aşağıdaki adımları uygulayın:
- İzleme'de,
500 Internal Server Errorile başarısız olan API isteğini seçin. Aşağıdaki şekilde gösterildiği gibi, başarısız olan API isteğinden Hedef sunucudan yanıt alındı aşamasını seçin:
Aşama Ayrıntıları bölümüne gidin 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 Not Authorised (Yetkili Değil) olduğunu unutmayın. Bu, kullanıcının geçersiz kimlik bilgileri göndermiş olabileceğini ve bu nedenle bu hatayı aldığını gösterir.
Arka uç sunucusunu arama
Arka uç sunucusuna doğrudan arama yapma:
Arka uç sunucusuna doğrudan arama yapabilir ve:
- İsteğin Apigee Edge üzerinden yapıldığı zamankiyle aynı
500 Internal Server Erroryanıtı alıp almadığınızı doğrulayın. - Arka uç sunucusundan alınan hata mesajını (yanıt) kontrol edin.
Doğrudan arka uç sunucusuna çağrı yapmak için aşağıdaki adımları uygulayın:
- Gerekli tüm üst bilgiler, sorgu parametreleri ve isteğin bir parçası olarak arka uç sunucusuna iletilmesi gereken tüm kimlik bilgilerine sahip olduğunuzdan emin olun.
- Arka uç hizmeti herkese açık olarak erişilebiliyorsa
curlkomutunu, Postman'i veya başka bir REST istemcisini kullanabilir ve arka uç sunucusu API'sini doğrudan çağırabilirsiniz. Arka uç sunucuya yalnızca Mesaj İşleyicilerden erişilebiliyorsa
curlkomutunu, Postman'i veya başka bir REST istemcisini kullanabilir ve arka uç sunucu API'sini doğrudan Mesaj İşleyiciden çağırabilirsiniz.- Arka uç hizmetinin gerçekten
500 Internal Server Errordöndürüp döndürmediğini doğrulayın ve arka uç sunucusu tarafından döndürülen hata mesajını (yanıt) kontrol edin. Ardından, bu hatanın nedenini belirleyin.
Arka uç sunucu günlükleri
Arka uç sunucu günlüklerini kullanma
- Arka uç sunucu günlüklerini inceleyin ve hatayla ilgili daha fazla ayrıntı ile hatanın nedenini öğrenmeye çalışın.
- Hata ve nedeni hakkında daha fazla bilgi edinmek için mümkünse arka uç sunucusunda hata ayıklama modunu etkinleştirin.
- İzleme'de,
Başarısız olan API proxy'sinin belirli hedef uç noktasında proxy zincirleme kullanıp kullanmadığınızı kontrol edin. Diğer bir deyişle, hedef sunucu/hedef uç nokta Apigee Edge'de başka bir proxy'yi çağırıyor mu? Bunu belirlemek için:
Başarısız olan isteğin izlemesi varsa İstek hedef sunucuya gönderildi aşamasına gidin ve Curl'ü göster'i tıklayın.
- Hedef Sunucuya Gönderilen İstek İçin Curl penceresi açılır. Bu pencereden hedef sunucu ana makine diğer adını belirleyebilirsiniz.
- API proxy'nizin hedef uç noktasını inceleyin ve arka uç sunucusu URL'sinin veya hedef sunucudaki ana bilgisayar adının başka bir proxy'ye ya da kendi arka uç sunucunuza yönlendirip yönlendirmediğini kontrol edin.
- Hedef sunucu ana makine takma adı, sanal ana makine takma adına işaret ediyorsa bu, proxy zincirlemedir. Bu durumda,
500 Internal Server Error'ya neyin neden olduğunu belirleyene kadar zincirleme proxy için yukarıdaki tüm adımları tekrarlamanız gerekir. Bu durumlarda500 Internal Server Error, diğer aşamalarda zincirleme olarak kullanılan diğer proxy'lerde de meydana gelebilir. Bu sorunlar, bu oyun planında veya 500 Dahili Sunucu Hatası oyun planında verilen talimatlar kullanılarak teşhis edilebilir ve çözülebilir. - Hedef sunucu ana makine takma adı, arka uç sunucunuzu işaret ediyorsa Çözüm bölümüne gidin.
Çözünürlük
500 hatasının arka uç sunucusundan kaynaklandığı belirlenirse sorunu uygun şekilde düzeltmek için arka uç sunucusu ekibinizle birlikte çalışın.
Yukarıda bahsedilen örnekte, bu sorunu düzeltmek için kullanıcılardan geçerli kimlik bilgileri göndermelerini isteyebilirsiniz.
Dikkat edilmesi gereken önemli noktalar
- Arka uç sunucusu tarafından
500 Internal Server Erroriçin döndürülen gerçek hata mesajı, yalnızca başarısız olan isteklerin izleme oturumunu yakaladıysanız görüntülenebilir. - Arka uç sunucu yanıtı, güvenlik nedeniyle API İzleme, NGINX Erişim Günlükleri veya Mesaj İşleyici günlüklerine kaydedilmez.
500 Internal Server Errorhakkında daha fazla bilgi edinmek ve/veya arka uç sunucusu tarafından döndürülen hata mesajını görüntülemek için arka uç sunucusu günlüklerini inceleyebilir veya arka uçta hata ayıklama modunu etkinleştirebilirsiniz.
Teşhis bilgilerini toplamalıdır
Yukarıdaki talimatları uyguladıktan sonra 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'si adı
500hatasını yeniden oluşturmak içincurlkomutunu tamamlayın.500 Internal Server Errorile istekleri içeren izleme dosyası500hataları şu anda oluşmuyorsa500hatalarının geçmişte oluştuğu zaman aralığını saat dilimi bilgisiyle birlikte belirtin.
Private Cloud kullanıcısıysanız aşağıdaki bilgileri sağlayın:
- Başarısız olan istekler için gözlemlenen hata mesajının tamamı
- Gözlemlediğiniz kuruluş, ortam adı ve API proxy adı
500hataları - API proxy paketi
500 Internal Server Errorile istekleri içeren izleme dosyası- NGINX erişim günlükleri
/opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_logNerede: 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 500hatalarının oluştuğu saat dilimi bilgisine sahip dönem.