503 Hizmeti Kullanılamıyor - Arka Uç Sunucusu

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

Videolar

503 Hizmet Kullanılamıyor hatalarını çözme hakkında daha fazla bilgi edinmek için aşağıdaki videoyu izleyin.

Video Açıklama
Arka uç sunucusundan 503 Hizmet Kullanılamıyor Hatası Aşağıdaki konular hakkında bilgi edinin:
  • Apigee Edge'de 503 Hizmet Kullanılamıyor Hatası'na Giriş
  • Arka uç sunucusundan gelen 503 Hizmet Kullanılamıyor hatasıyla ilgili sorunları giderme ve çözme

Belirti

İstemci uygulaması, bir API proxy çağrısının ardından Service Unavailable (Hizmet Kullanılamıyor) mesajıyla 503 HTTP yanıt durumunu alır.

Hata mesajları

Aşağıdaki hata mesajlarından birini görebilirsiniz:

HTTP/1.1 503 Service Unavailable
HTTP/1.1 503 Service Unavailable: Back-end server is at capacity

HTTP yanıtında aşağıdaki gibi bir hata mesajı da görebilirsiniz:

The server is temporarily unable to service your request due to
maintenance downtime or capacity problems. Please try again later.

Not: Yukarıdaki yanıt kodu ve hata mesajı yalnızca örnektir. Bazı durumlarda, hata mesajı olmadan yalnızca hata yanıtı kodu alabilirsiniz. Hata yanıtı kodunun ve hata mesajının biçimi ve içeriği, arka uç sunucu uygulamasına bağlı olarak değişebilir.

Nedenler

HTTP durum kodu 503, sunucunun şu anda gelen istekleri işleyemediği anlamına gelir. Bu hata genellikle sunucu çok meşgul olduğu veya bakım nedeniyle geçici olarak devre dışı kaldığı için oluşur.

503 Service Unavailable yanıtının olası nedenleri şunlardır:

Neden Açıklama Sorun giderme adımlarını kimler uygulayabilir?
Aşırı Yüklenmiş Sunucu Arka uç sunucu aşırı yüklenmiş veya kapasitesinin üzerinde olduğundan yeni gelen istemci isteklerini işleyemiyor. Edge Public ve Private Cloud kullanıcıları
Sunucu bakımdadır Arka uç sunucusu geçici olarak bakımda olabilir. Edge Public ve Private Cloud kullanıcıları

Neden: Aşırı Yüklü Sunucu/Bakımdaki Sunucu

Apigee Edge'de, 503 Hizmet Kullanılamıyor Hatası, aşağıdaki durumlardan birinde arka uç sunucusundan döndürülebilir:

  • Bir arka uç sunucusu aşırı yüklendiği/meşgul olduğu için yeni istekleri işleyemiyor.
  • Arka uç sunucusu, bakım nedeniyle geçici olarak kapalıdır.

Teşhis

Hatayı teşhis etmek için aşağıdaki üç yöntemden herhangi birini kullanabilirsiniz:

  • İzleme aracı
  • NGINX erişim günlükleri
  • Arka uç sunucusuna doğrudan çağrı

Her yöntem hakkında bilgi edinmek için aşağıdaki sekmeleri tıklayın.

İzleme aracı

  1. İzleme oturumunu etkinleştirin ve sorunu (503 Hizmet Kullanılamıyor) yeniden oluşturmak için API çağrısı yapın.
  2. Başarısız olan isteklerden birini seçip izlemeyi inceleyin.
  3. İzlemenin çeşitli aşamalarında gezinin ve hatanın nerede oluştuğunu bulun.
  4. 503 hatasının hedef sunucudan yanıt olarak döndürüldüğünü görürseniz 503 hatasının nedeni hedef sunucudur.

    Hedef sunucudan alınan 503 Hizmet Kullanılamıyor yanıtını gösteren örnek bir izleme ekran görüntüsünü aşağıda bulabilirsiniz:

  5. Hedef sunucudan yanıt alındı aşamasını tıklayın ve Response Headers (Yanıt Başlıkları) ile Response Content (Yanıt İçeriği) bölümlerini inceleyerek bu bölümlerde yararlı bilgiler olup olmadığını kontrol edin:
    • Yanıt üstbilgileri, hata yanıtının nereden gönderildiğini belirten sunucu üstbilgisini içerebilir.
    • Yanıt içeriği, hedef sunucunun neden 503 yanıt kodunu gönderdiği hakkında ek bilgiler içerebilir.
  6. Aşağıdaki adımları kullanarak izlemedeki AX (Analytics Verileri Kaydedildi) aşamasında X-Apigee-fault-source ve X-Apigee-fault-code değerlerini kontrol ederek 503 hatasının hedef sunucudan geldiğini doğrulayın:
    1. Aşağıdaki ekran görüntüsünde gösterildiği gibi AX (Analytics Verileri Kaydedildi) aşamasını tıklayın:
    2. Aşama Ayrıntıları'nda Yanıt Üstbilgileri bölümüne gidin ve aşağıdaki gibi X-Apigee-fault-code ve X-Apigee-fault-source değerlerini belirleyin:
    3. X-Apigee-fault-source ve X-Apigee-fault-code değerleri aşağıdaki tabloda gösterilen değerlerle eşleşiyorsa 503 hatasının hedef sunucudan kaynaklandığını doğrulayabilirsiniz:
      Yanıt Başlıkları Değer
      X-Apigee-fault-source target
      X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode
  7. Proxy zincirleme kullanıp kullanmadığınızı kontrol edin. Yani hedef sunucu/hedef uç nokta, Apigee'de başka bir proxy'yi çağırıyor mu? Bunu belirlemek için:
    1. İstek hedef sunucuya gönderildi aşamasına geri dönün ve Curl'ü göster düğmesini tıklayıp hedef sunucu ana makine takma adını belirleyin.
    2. Hedef sunucu ana makine takma adı, sanal ana makine takma adına işaret ediyorsa bu, proxy zincirlemedir. Bu durumda, 503 Hizmet Kullanılamıyor hatasına neyin neden olduğunu belirleyene kadar zincirlenmiş proxy için yukarıdaki tüm adımları tekrarlamanız gerekir. Bu durumlarda, diğer zincirleme proxy'lerde de diğer aşamalarda 503 Hizmet Kullanılamıyor hatası oluşabilir. Bu hata, bu oyun planı kullanılarak teşhis edilebilir.
    3. Hedef sunucu ana makine takma adı, arka uç sunucunuzu işaret ediyorsa Çözüm bölümüne gidin.

NGINX erişim günlükleri

503 durum kodunun arka uç sunucusu tarafından gönderilip gönderilmediğini belirlemek için NGINX erişim günlüklerine de bakabilirsiniz. Bu, özellikle sorun geçmişte yaşandıysa veya aralıklı olarak yaşanıyorsa ve kullanıcı arayüzünde izlemeyi yakalayamıyorsanız yararlıdır. NGINX erişim günlüklerinden bu bilgileri belirlemek için aşağıdaki adımları uygulayın:

  1. NGINX erişim günlüklerini kontrol edin.
    /opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log
  2. Belirli bir süre boyunca belirli API proxy'si için 503 hatalarını arayın (sorun geçmişte yaşandıysa) veya 503 hatasıyla başarısız olmaya devam eden istekleri arayın.
  3. 503 hatası varsa hatanın arka uç sunucusundan kaynaklanıp kaynaklanmadığını kontrol edin. X-Apigee-fault-source ve X-Apigee-fault-code değerleri aşağıdaki tabloda gösterilen değerlerle eşleşiyorsa 503 hatası arka uç sunucusundan kaynaklanıyordur:
    Yanıt Başlıkları Değer
    X-Apigee-fault-source target
    X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode

    Hedef sunucunun neden olduğu 503 hatasını gösteren örnek bir giriş aşağıda verilmiştir:

  4. İlgili API proxy'sini inceleyin ve proxy zincirleme kullandığınızdan emin olun. Hedef sunucu/hedef uç nokta, Apigee'de başka bir proxy'yi çağırmıyorsa. Proxy zincirleme kullanıyorsanız 503 Hizmet Kullanılamıyor hatasına neyin neden olduğunu belirleyene kadar zincirlenmiş proxy için yukarıdaki tüm adımları tekrarlamanız gerekir. Bu durumlarda, diğer zincirleme proxy'lerde de diğer aşamalarda 503 Hizmet Kullanılamıyor hatası oluşabilir. Bu sorunu bu oyun planını kullanarak teşhis edebilirsiniz.
  5. Proxy zincirleme kullanmadığınızı onaylıyorsanız ve 503 hatası arka uç sunucunuzdan geliyorsa Çözüm bölümüne gidin.

Arka uç sunucusuna yapılan çağrı

Arka uç sunucuya doğrudan çağrı yapabilir ve isteğin Apigee Edge üzerinden yapıldığı sırada alınan 503 Hizmet Kullanılamıyor yanıtının aynısını aldığınızı doğrulayabilirsiniz.

  1. Gerekli tüm başlıkların, sorgu parametrelerinin ve isteğin bir parçası olarak arka uç sunucusuna iletilmesi gereken tüm kimlik bilgilerinin bulunduğundan emin olun.
  2. Arka uç hizmeti herkese açık olarak erişilebiliyorsa curl komutunu, Postman'i veya başka bir REST istemcisini kullanabilir ve arka uç sunucusu API'sini doğrudan çağırabilirsiniz.
  3. Arka uç sunucuya yalnızca Mesaj İşleyiciler'den erişilebiliyorsa curl komutunu, Postman'i veya başka bir REST istemcisini kullanabilir ve arka uç sunucu API'sini doğrudan Mesaj İşleyici'den çağırabilirsiniz.
  4. Arka uç hizmetinin gerçekten 503 Hizmet Kullanılamıyor hatası döndürdüğünü doğrulayın.

Çözünürlük

503 hatasının arka uç sunucusundan kaynaklandığını tespit ederseniz sorunu çözmek için aşağıdakileri yapabilirsiniz:

  • Sorun, arka uç sunucusunun bakım nedeniyle kapalı olmasından kaynaklanıyorsa bakım süresi sona erdikten sonra arka uç sunucusunu çevrimiçi hale getirebilirsiniz.
  • Sorun, arka uç sunucusunun aşırı yüklenmesinden kaynaklanıyorsa arka uç sunucusuna erişiminiz varsa sorunu düzeltin. Aksi takdirde, sorunu düzeltmek için arka uç sunucusu ekibinizle birlikte çalışmanız gerekebilir.

API İzleme'yi kullanarak sorunları teşhis etme

API Monitoring, hata, performans ve gecikme sorunlarını ve bunların kaynağını (ör. geliştirici uygulamaları, API proxy'leri, arka uç hedefleri veya API platformu) teşhis etmek için sorunlu alanları hızlı bir şekilde izole etmenizi sağlar.

API İzleme'yi kullanarak API'lerinizdeki 5xx sorunlarını nasıl gidereceğinizi gösteren örnek bir senaryoyu adım adım inceleyin. Örneğin, messaging.adaptors.http.flow.ErrorResponseCode hatalarının sayısı belirli bir eşiği aştığında bildirim almak için uyarı ayarlamak isteyebilirsiniz.

Teşhis bilgilerini toplamalıdır

Yukarıdaki talimatları uyguladıktan sonra sorun devam ederse lütfen aşağıdaki teşhis bilgilerini toplayın ve Apigee 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'sinin Adı
  • 503 hatasını yeniden oluşturmak için kullanılan tam curl komutu
  • 503 Hizmet Kullanılamıyor hatası içeren istekleri içeren izleme dosyası
  • 503 hataları şu anda oluşmuyorsa geçmişte 503 hatalarının oluştuğu saat dilimi bilgisiyle birlikte zaman aralığını belirtin.

Özel bulut 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ı.
  • 503 hatalarını gözlemlediğiniz kuruluş, ortam adı ve API proxy'si adı.
  • API Proxy Paketi.
  • 503 Hizmet Kullanılamıyor hatası 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
  • Mesaj işleyici günlükleri.
    /opt/apigee/var/log/edge-message-processor/logs/system.log
  • 503 hatalarının oluştuğu saat dilimi bilgisine sahip zaman aralığı.