Kullanıcılar "503 Service Unavailable" / "No Available Server" görüyor; ne yapmalıyım?
Kısa cevap
503, TR7'nin isteği iletebileceği kullanılabilir bir Kurum Servisi bulamadığını gösterir. Önce vService önizlemesinin Details sekmesine bakılır: No healthy backend services bütün Kurum Servislerinin sağlıksız ya da bakımda olduğunu, No backend services given hiç Kurum Servisi eklenmediğini gösterir ve bu ikinci durumda vService yeşil (OK) görünür. Kurum Servisleri yeşilse istek, sunucuları düşmüş bir Conditional Backend Services bloğuna düşüyor, Connection Limit dolup Queue Timeout aşılıyor ya da health check atanmamış kapalı bir sunucuya gidiyor olabilir. Kesin neden Debug Mode Logs'taki Termination State ve Backend Service değerlerinden okunur.
Sorun: Kullanıcılar Hata Sayfası Görüyor
Kullanıcılar büyük "503" ve "No server was available to handle the request" yazan TR7 sayfasını ya da vService'e tanımlanmış özel bir hata sayfasını görüyor. 503'ü TR7 üretir: istek için seçilebilecek, trafik alan bir Kurum Servisi yoktur ya da Kurum Servisine bağlantı kurulamamıştır. Sorunun bütün isteklerde mi, yalnızca belirli yollarda ya da host'larda mı, yoksa yoğun saatlerde mi oluştuğu belirlenmelidir; neden bu desenden anlaşılır.
Ekrandaki sayfaya bakarak karar verilmez: vService'e Show Content for Traffic Manager Errors aksiyonu eklenmişse TR7'nin 503'ü özel içerikle gösterilir. Kaynak her zaman loglardan belirlenir.
Nedenler ve Çözümler
| Neden | Nasıl anlaşılır | Çözüm |
|---|---|---|
| Bütün Kurum Servisleri sağlıksız | Details'te No healthy backend services, vService kırmızı (Error) | Health check teşhisi (Backend down görünüyor; nasıl teşhis ederim?) |
| Bütün Kurum Servisleri bakımda | Details'te <ad> is under maintenance satırları ve No healthy backend services | Maintenance Mode kapatılır (Maintenance Mode ne yapar?) |
| vService'e hiç Kurum Servisi eklenmemiş | vService yeşil (OK), Details'te No backend services given | Default Backend Services listesine Kurum Servisi eklenir |
| Hiçbir koşul eşleşmiyor ve Default liste boş | Yalnızca bazı isteklerde 503; HTTP logs'ta Backend Service = TR7 | Default listeye Kurum Servisi eklenir (Hiçbir koşul eşleşmezse trafik nereye gider?) |
| Eşleşen koşullu bloğun sunucuları down | Belirli yol ya da host'ta 503; vService sarı (Warning) | Bloğun sunucuları düzeltilir; blok Default listeye geri düşmez |
| Connection limit doldu | Yoğun saatlerde aralıklı 503; Termination state While queued · Server timeout | Connection limit ya da sunucu sayısı artırılır (Connection Limit nedir; limit dolunca yeni istekler ne olur?) |
| Health check yok, sunucu kapalı | Live Stats'ta durum No Check; Debug Mode Logs'ta Retries sıfırdan büyük | Health check atanır (Sunucu arızalı ama TR7 hâlâ trafik gönderiyor; neden?) |
| Kurum Servisi adresi TR7'nin iç ağında | Details'te Taken out of service because they address TR7's own internal network | Kurum Servisinin Address alanına gerçek sunucu adresi yazılır |
| Bilinçli bakım sayfası | vService'te 503 durum koduyla tanımlı Show Content aksiyonu | Aksiyon vService'ten çıkarılır (Bakım sayfasını nasıl yayınlarım?) |
Nereden İzlenir?
| Ekran | Yol | Ne gösterir |
|---|---|---|
| Details | Load Balancer vServices → vService → sağ panel | vService durumu ve Kurum Servisi durum mesajları |
| Status Logs | Aynı panelde | Durumun ne zaman, hangi gerekçeyle değiştiği |
| Live Stats → Backend Services | vService → Live Stats | Kurum Servisi başına Healthy / Unhealthy / Maintenance / No check, kuyruk ve bağlantı hataları |
| HTTP Logs | vService → Logs & Tracking | 503 alan istekler ve Backend service değeri |
| Debug Mode Logs | vService → Logs & Tracking | Termination state ve Retries |
Çözüm: Üç Yöntem
Üç yöntem birbirini tamamlar ve sırayla uygulanır: önce durum mesajı okunur, sonra 503'lerin deseni çıkarılır, gerekirse kesin neden Debug mode ile bulunur.
| Durumunuz | Uygun yöntem |
|---|---|
| İlk kontrol: vService'in durum mesajı | Yöntem 1: Details sekmesi |
| Hangi isteklerin 503 aldığı | Yöntem 2: HTTP logs |
| Kesin neden | Yöntem 3: Debug Mode Logs → Termination state |
Yöntem 1: Details Sekmesi Önerilen
- Nasıl çalışır vService önizlemesinin Details sekmesi vService'in durumunu ve her Kurum Servisi için durum mesajlarını gösterir.
- Nerede açılır Left Monitor Panel → Load Balancer vServices → vService → sağ panel → Details
- Gereksinim Ek bir ayar gerekmez.
- vService tipi HTTP (503 durum kodu yalnızca HTTP vService'te üretilir)
Adım adım yapılandırma
Left Monitor Panel'de Load Balancer vServices listesinden ilgili vService seçilir; sağ panelde Details sekmesi açılır. Sekmenin altındaki renk şeridi vService'in birleşik durumunu gösterir: yeşil OK, sarı Warning, kırmızı Error, gri Disabled (elle kapatılmış ya da lisans trafiği durdurmuş) (vService Status).
Mesaja göre ilerlenir:
No healthy backend services: vService'teki bütün Kurum Servisleri sağlıksız ya da bakımdadır; vService kırmızı (Error) görünür. Health check teşhisi için Backend down görünüyor; nasıl teşhis ederim?<ad> is under maintenance: o Kurum Servisi Maintenance Mode'dadır ve trafik almaz. Bakımdaki Kurum Servisi çalışan sayılmaz; hepsi bakımdaysaNo healthy backend servicesda görünür.No backend services given: vService'e hiç Kurum Servisi eklenmemiştir. vService yine de yeşil (OK) görünür ve her isteğe 503 döner.Taken out of service because they address TR7's own internal network: Kurum Servisinin adresi TR7'nin iç ağına düşer ve trafikten çıkarılmıştır; Address gerçek sunucu adresiyle değiştirilir.<ad> is not healthy: yalnızca o Kurum Servisi sağlıksızdır; vService sarı (Warning) görünür.
Kurum Servisi önizlemesinin Used in sekmesinden Kurum Servisinin gerçekten bu vService'te kullanıldığı görülür (Bir Kurum Servisini hangi vService'lerin kullandığını nasıl görürüm ("Used in")?). vService'te Conditional Backend Services varsa isteğin düştüğü bloğun sunucularının durumu ayrıca kontrol edilir: koşul eşleştiğinde istek o bloğa gider; bloğun sunucuları down ise Default listeye geri düşülmez ve istek 503 alır.
Doğrulama
Düzeltme sonrasında Details sekmesine yeniden bakılır; geçiş Status Logs sekmesinde de görünür.
Hata mesajı kalkar, şerit yeşil (OK)Aynı adres istemciden yeniden istenir: curl -sv https://www.example.com/ -o /dev/null
< HTTP/1.1 200 OKYöntem 2: HTTP Logs
- Nasıl çalışırHTTP Logs her isteğin durum kodunu ve isteği karşılayan Kurum Servisini gösterir; istek hiçbir Kurum Servisine gitmediyse Backend service değeri TR7, yanıt önbellekten verildiyse Cache yazılır.
- Nerede açılır Left Monitor Panel → Load Balancer vServices → vService → Logs & Tracking → HTTP Logs
- Gereksinim vService'in Details panelinde LOG kutusu işaretli ve bir log profili seçili olmalıdır (HTTP logları nasıl aktif edilir).
- vService tipi HTTP
Adım adım yapılandırma
Left Monitor Panel → Load Balancer vServices → vService → Logs & Tracking → HTTP Logs açılır. Kayıt yoksa vService'te log açık değildir (HTTP logları ile TCP logları arasındaki fark nedir?).
Filter panelinde Status Code kartından 503 seçilir (Filter).
Kayıtların Backend Service değerine bakılır: değer TR7 ise istek hiçbir Kurum Servisine gitmemiştir (liste boş, hepsi down, hiçbir koşul eşleşmedi ya da istek kuyrukta zaman aşımına uğradı); bir Kurum Servisi adı görünüyorsa TR7 o sunucuyu seçmiş ama bağlantı kuramamış ya da istek kuyrukta beklemiştir.
503'lerin bütün isteklerde mi, belirli bir yol ya da host'ta mı, yoksa yoğun saatlerde mi toplandığına bakılır. Yalnızca belirli yollarda oluşuyorsa koşullu yönlendirme; yoğun saatlerde oluşuyorsa kuyruk ve Connection limit incelenir (Kuyruk (queue) nasıl çalışır; istekler en fazla ne kadar bekler?).
Doğrulama
Düzeltmeden sonra HTTP logs'ta Status code 503 filtresi yeniden uygulanır.
Yeni 503 kaydı oluşmazYöntem 3: Debug Mode Logs → Termination State
- Nasıl çalışırTermination State isteğin hangi aşamada ve hangi nedenle sonlandığını "aşama · neden" biçiminde gösterir; Retries bağlantı denemelerinin kaç kez tekrarlandığını gösterir.
- Nerede açılır vService düzenleme formu → Status = Debug mode; kayıtlar Logs & Tracking → Debug mode logs
- Gereksinim HTTP vService. Debug mode her istek için ayrıntılı kayıt tutar; yoğun trafikte Debug grubundaki Select Conditions alanından seçilen bir koşulla yalnızca sorunlu istemci kaydedilir.
- vService tipi HTTP
Adım adım yapılandırma
Load Balancer → Load Balancer vService List ekranında vService seçilir ve Edit butonuna tıklanır.
Status alanında Debug Mode seçilir. Aynı ayar Details panelindeki Debug kutusuyla da açılır; Debug mode seçeneği yalnızca HTTP vService formunda görünür (Debug Mode ne kaydeder; ne kadar süre açık tutmalıyım?).
Yoğun trafikte Debug grubundaki Select Conditions alanından sorunlu istemcinin IP'sini ya da ilgili yolu seçen bir koşul seçilir. Koşul seçilmezse vService'e gelen bütün HTTP istekleri kaydedilir.
Save butonuna tıklanır ve 503 yeniden üretilir.
Logs & Tracking → Debug Mode Logs ekranında 503 kaydının Termination State ve Retries değerine bakılır:
| Termination state | Anlamı |
|---|---|
While connecting to backend · Server aborted/refused | Sunucu ya da aradaki bir cihaz bağlantıyı reddetti; Backend Service = TR7 ise seçilebilecek sunucu yoktu |
While connecting to backend · Server timeout | Connect Timeout (varsayılan 20 sn) doldu: sunucu kapalı, firewall ya da route sorunu |
While queued · Server timeout | Connection limit dolu; istek kuyrukta Queue Timeout (varsayılan 60 sn) süresini aştı |
Retries 0 ise ilk denemede bağlanılmıştır; sıfırdan büyükse bağlantı denemeleri başarısız olmuştur.
İnceleme bitince Load Balancer → Load Balancer vService List ekranında vService seçilir ve Edit butonuna tıklanır.
Status alanında Enabled seçilir. Debug mode kendiliğinden kapanmaz.
Save butonuna tıklanır.
Doğrulama
Debug Mode Logs'ta 503 kaydı açılır; Summary sekmesindeki Connection info zinciri isteğin nerede durduğunu gösterir.
Termination state "aşama · neden" değeri doluSık Yapılan Hatalar
- vService yeşil diye Kurum Servisi listesini kontrol etmemek. Kurum Servisi eklenmemiş bir vService yeşil (OK) görünür ve her isteğe 503 döner; Details'te
No backend services givenyazar. - Bakım modunu gözden kaçırmak. Maintenance Mode'daki Kurum Servisi trafik almaz ve çalışan sayılmaz.
- Health check atamamak. Health check yoksa sunucu her zaman ayakta sayılır ve kapalı sunucuya da istek gönderilir (Health Check ne işe yarar; atamazsam ne olur?).
- Koşullu bloğun Default listeye geri düşeceğini sanmak. Koşulu eşleşen istek o bloğa gider; bloğun sunucuları down ise 503 alır.
- Özel hata sayfasına bakarak kaynağa karar vermek. Özel sayfa tanımlıysa kaynak loglardan belirlenir (TR7'nin kendi ürettiği 503/502/504 hataları için özel sayfa gösterebilir miyim?).
- Termination state'i HTTP logs'ta aramak. Bu kolon yalnızca Debug Mode Logs'ta bulunur.
- Debug mode'u açık unutmak. İnceleme bitince Status yeniden Enabled yapılır.
- Sorun sürüyorsa bilgi toplamadan destek istemek. Destek kaydına eklenecekler: TR7 destek ekibine başvurmadan önce hangi bilgileri toplamalıyım?
Dokümantasyonda nasıl yapılır
