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ı çözümüyle ilgili 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ğıdakiler hakkında bilgi edinin:
  • Apigee Edge'de 503 Hizmet Kullanılamıyor Hatasına Giriş
  • Arka Uç Sunucusundan Kullanılamayan 503 Hizmetiyle İlgili Gerçek Zamanlı Sorun Giderme ve Çözüm

Belirti

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

Hata mesajları

Aşağıdaki hata mesajlarından birini görüyor olabilirsiniz:

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

HTTP yanıtında aşağıdakine benzer 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 mesajları yalnızca örnek olarak verilmiştir. Bazı durumlarda, herhangi bir hata mesajı olmadan yalnızca hata yanıt kodunu alabilirsiniz. Hata yanıt kodunun ve hata mesajının biçimi ve içeriği, arka uç sunucusu uygulamasına bağlı olarak değişiklik gösterebilir.

Amaçlar

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

503 Hizmet Kullanılamıyor 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ç sunucusu aşırı yüklü veya kapasitesini aşıyor ve yeni gelen istemci isteklerini işleyemiyor. Edge Herkese Açık ve Özel Bulut kullanıcıları
Sunucuya bakım yapılıyor Arka uç sunucusu geçici olarak bakımda olabilir. Edge Herkese Açık ve Özel Bulut kullanıcıları

Neden: Aşırı Yüklenmiş Sunucu/Sunucu Bakım Altında

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

  • Arka uç sunucusu aşırı yüklü/meşgul ve yeni istekleri işleyemiyor.
  • Arka uç sunucusu bakım nedeniyle geçici bir süreliğine kapalıdır.

Teşhis

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

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

Yöntemler hakkında bilgi edinmek için aşağıdaki sekmeleri tıklayın.

İzleme aracı

  1. İzleme oturumunu etkinleştirin ve sorunu yeniden oluşturmak için API çağrısı yapın (503 Hizmeti Kullanılamıyor).
  2. Başarısız isteklerden birini seçip izi inceleyin.
  3. İzin çeşitli aşamaları arasında gezinin ve hatanın nerede gerçekleştiğini 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 iz ekran görüntüsünü burada bulabilirsiniz:

  5. Hedef sunucudan alınan yanıt aşamasını tıklayın ve faydalı bilgiler olup olmadığını görmek için Yanıt Başlıkları ve Yanıt İçeriği bölümlerini gözden geçirin:
    • Yanıt Başlıkları, hata yanıtının nereden gönderildiğini belirten Sunucu başlığını içerebilir.
    • Yanıt İçeriği, hedef sunucunun neden 503 yanıt kodu gönderdiği hakkında ek bilgiler içerebilir.
  6. Aşağıdaki adımları uygulayarak izdeki AX (Analytics Verileri Kaydedilen) Aşamasında X-Apigee-fault-source ve X-Apigee-fault-code değerlerini kontrol ederek 503 hatasının hedef sunucudan geldiğini onaylayın:
    1. Aşağıdaki ekran görüntüsünde gösterilen AX (Analytics Verileri Kaydedilen) Aşaması'nı tıklayın:
    2. Aşama Ayrıntıları'ndan Yanıt Başlıkları bölümüne gidin ve X-Apigee-fault-code ile X-Apigee-fault-source değerlerini aşağıda gösterildiği gibi 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 geldiğini onaylayabilirsiniz:
      Yanıt Başlıkları Değer
      X-Apigee-fault-source hedef
      X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode
  7. Proxy zincirleme kullanıp kullanmadığınızı, yani hedef sunucunun/hedef uç noktanın Apigee'de başka bir proxy çağırıp çağırmadığını kontrol edin. Bunu belirlemek için:
    1. Hedef sunucuya gönderilen istek aşamasına geri dönüp Show Curl (Curl'yi Göster) düğmesini tıklayın ve hedef sunucu ana makine takma adını belirleyin.
    2. Hedef sunucu ana makine takma adı bir sanal ana makine takma adına işaret ediyorsa bu, proxy zincirlemedir. Bu durumda, 503 Service Kullanılamıyor hatasına gerçekte neyin neden olduğunu belirleyene kadar, zincirleme proxy için yukarıdaki adımların tümünü tekrarlamanız gerekir. Bu durumlarda, diğer aşamalardaki diğer zincirleme proxy'lerde de 503 Hizmet Kullanılamıyor durumu bu başucu kitabı kullanılarak teşhis edilebilir.
    3. Hedef sunucu ana makine takma adı arka uç sunucunuzu işaret ediyorsa Çözüm'e 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 oluşmuşsa veya ara sıra ortaya çıkıyorsa ve kullanıcı arayüzünde izini yakalayamıyorsanız yararlı olur. Bu bilgileri NGINX erişim günlüklerinden 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 API proxy'si için belirli bir süre boyunca (sorun geçmişte olduysa) veya 503 hatası vermeye devam eden isteklerin 503 Hatası olup olmadığını kontrol edin.
  3. 503 Hatası varsa hatanın arka uç sunucudan gelip gelmediğini 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ç sunucudan geliyor demektir:
    Yanıt Başlıkları Değer
    X-Apigee-fault-source hedef
    X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode

    Hedef sunucunun neden olduğu 503 hatasını gösteren bir örnek girişi burada görebilirsiniz:

  4. İlgili API Proxy'sini inceleyin ve proxy zinciri kullandığınızdan emin olun (ör. hedef sunucu/hedef uç nokta, Apigee'de başka bir proxy çağırmıyorsa Proxy zincirlemesi kullanıyorsanız 503 Service Kullanılamıyor hatasına neyin neden olduğunu belirleyene kadar zincirleme proxy için yukarıdaki adımların tümünü tekrarlamanız gerekir. Bu durumlarda, bu başucu kitabını kullanarak teşhis edebileceğiniz diğer aşamalardaki diğer zincirleme proxy'lerde de 503 Service Kullanılamıyor durumu ortaya çıkabilir.
  5. Proxy zincirleme kullanmadığınızı ve 503 hatasının arka uç sunucunuzdan geldiğini onaylıyorsanız Çözüm'e gidin.

Arka Uç Sunucusuna Çağrı

Arka uç sunucusuna doğrudan bir çağrı yapabilir ve istek Apigee Edge üzerinden yapıldığında alınan 503 Service Availability (Hizmet Kullanılamıyor) yanıtını aldığınızı doğrulayabilirsiniz.

  1. İsteğin bir parçası olarak arka uç sunucusuna iletilmesi gereken tüm gerekli üst bilgilere, sorgu parametrelerine ve kimlik bilgilerine sahip olduğunuzdan emin olun.
  2. Arka uç hizmeti herkesin erişimine açıksa curl komutunu, Postman'ı veya başka bir REST istemcisini kullanabilir ve arka uç sunucusu API'sini doğrudan çağırabilirsiniz.
  3. Arka uç sunucusuna yalnızca Mesaj İşleyicilerinden 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.
  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ç sunucudan geldiğinden eminseniz sorunu çözmek için aşağıdakileri yapabilirsiniz:

  • Sorun arka uç sunucusunun bakım nedeniyle kapalı olmasından kaynaklanıyorsa bakım döneminden sonra arka uç sunucusunu çevrimiçi yapabilirsiniz.
  • 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ç sunucu ekibinizle çalışmanız gerekebilir.

API Monitoring'i kullanarak sorunları teşhis etme

API İzleme; hata, performans ve gecikme sorunlarını ve bunların kaynaklarını (ör. geliştirici uygulamaları, API proxy'leri, arka uç hedefleri veya API platformu) teşhis etmek için sorunlu alanları hızla izole etmenize olanak tanır.

API Monitoring'i kullanarak API'lerinizle ilgili 5xx sorunlarını nasıl gidereceğinizi gösteren örnek bir senaryoyu inceleyin. Örneğin, messages.adaptors.http.flow.ErrorResponseCode hatasının sayısı belirli bir eşiği aştığında bilgilendirilecek bir uyarı ayarlamak isteyebilirsiniz.

Teşhis bilgileri toplanmalıdır

Yukarıdaki talimatları uygulamanıza rağmen sorun devam ederse lütfen aşağıdaki teşhis bilgilerini toplayıp Apigee Desteği ile iletişime geçin.

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

  • Kuruluş Adı
  • Ortam Adı
  • API Proxy Adı
  • 503 hatasını yeniden oluşturmak için curl komutunu tamamlayın
  • 503 Hizmet Kullanılamıyor hatası içeren istekleri içeren izleme dosyası
  • 503 hataları şu anda ortaya çıkmıyorsa geçmişte 503 hatalarının oluştuğu saat dilimini içeren dönemi belirtin.

Özel bulut kullanıcısıysanız aşağıdaki bilgileri sağlayın:

  • Başarısız istekler için gözlemlenen tam hata mesajı.
  • 503 hataları gördüğünüz kuruluş, ortam adı ve API proxy 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
  • Message Processor günlükleri.
    /opt/apigee/var/log/edge-message-processor/logs/system.log
  • 503 hatalarının oluştuğu saat dilimi bilgilerinin yer aldığı dönem.