TR7'nin kendi ürettiği 503/502/504 hataları için özel sayfa gösterebilir miyim?
Kısa cevap
Evet, HTTP vService'te. Show Content for Traffic Manager Errors aksiyonunda Error Codes listesinden 502, 503 ve 504 gibi kodlar seçilir; TR7 bu hataları ürettiğinde varsayılan sayfası yerine seçilen Content Page'i seçilen Status Code ile gösterir. Status code varsayılan 200 gelir ve aksiyondaki bütün kodlara uygulanır; her hata kendi koduyla dönecekse her kod için ayrı aksiyon eklenir. Kullanıcıyı TR7 dışındaki bir adrese göndermek için Redirect for Traffic Manager Errors kullanılır. Bu aksiyonlar Kurum Servisine ulaşılamaması, zaman aşımı ve hatalı istek gibi TR7'nin kendi ürettiği yanıtları kapsar.
Sorun: TR7'nin Hata Sayfası Kurumsal Görünümle Uyuşmuyor
Kurum Servislerine ulaşılamadığında, yanıt zaman aşımına uğradığında ya da istek hatalı olduğunda yanıtı TR7 üretir ve kendi varsayılan hata sayfasını gösterir. Bu sayfa kurumun tasarımına uygun, kullanıcıya ne yapacağını anlatan bir sayfayla değiştirilir.
| Kod | TR7 ne zaman üretir |
|---|---|
| 503 Service Unavailable | vService'te kullanılabilir Kurum Servisi kalmadığında (hepsi sağlıksız ya da Maintenance mode'da) |
| 502 Bad Gateway | Kurum Servisi bağlantıyı kapattığında ya da geçersiz yanıt döndürdüğünde |
| 504 Gateway Timeout | Kurum Servisi yanıtı zaman aşımı süresinde gelmediğinde |
| 400, 408, 429 | İstek hatalı, istek zaman aşımı, istek sınırı aşıldı |
Çözüm: İki Yöntem
İki aksiyon da koşul almaz ve yalnızca TR7'nin kendi ürettiği seçili hatalarda devreye girer; olağan trafiği etkilemedikleri için vService'te sürekli kalabilir. Kurum Servisinin kendi döndürdüğü hatalar için Backend 404 veya 500 döndüğünde özel bir hata sayfası gösterebilir miyim?
| Durumunuz | Uygun yöntem |
|---|---|
| TR7'nin hatalarında özel sayfa | Yöntem 1: Show Content for Traffic Manager Errors |
| TR7'nin hatalarında TR7 dışındaki bir adrese göndermek | Yöntem 2: Redirect for Traffic Manager Errors |
Yöntem 1: Show Content for Traffic Manager Errors Önerilen
- Nasıl çalışır TR7'nin ürettiği seçili hata kodlarında varsayılan sayfa yerine seçilen içerik sayfası, aksiyonun Status code değeriyle gösterilir.
- Nerede açılırLoad Balancer → Actions → Show Content for Traffic Manager Errors
- Gereksinim Hata sayfası Content Pages'te; sayfanın stil ve görselleri sayfaya gömülü (hata anında Kurum Servisine ulaşılamaz)
- vService tipi HTTP
Adım adım yapılandırma
Load Balancer → Profiles → Content Pages → Add tıklanır (nasıl eklenir).
Content Page Name, Content Type (varsayılan text/html) ve Content girilir; istenirse hazır sayfa şablonlarından biri kopyalanır. Türkçe karakterler için sayfaya <meta charset="utf-8"> yazılır.
Add tıklanır.
Load Balancer → Actions → Add tıklanır (nasıl eklenir).
Action Name girilir, Action Type = Show content for traffic manager errors seçilir. Error Codes = 503; Content Page = 3. adımdaki sayfa (varsayılanı Access Denied Page (English)); Status Code = 503 (varsayılan 200).
Add tıklanır.
4–6. adımlar Error Codes = 502, Status Code = 502 ve Error Codes = 504, Status Code = 504 ile tekrarlanır. Kodların ayrı tutulması gerekmiyorsa tek aksiyonda üç kod birlikte seçilir; o zaman üçü de aynı Status code ile döner.
Load Balancer → Load Balancer vService List ekranında HTTP vService seçilip Edit tıklanır.
Save tıklanır. Değişiklik açık bağlantılar kopmadan uygulanır; cluster'da varsayılan auto-sync ile eş cihaza da gönderilir (Manual Sync Mode açıksa Synchronize ile).
Doğrulama
Test vService'inde bütün Kurum Servisleri Maintenance mode'a alınır ve curl -i https://www.example.com/ gönderilir.
HTTP/1.1 503 + özel sayfaHTTP Logs ekranında istek 503 durum koduyla görünür.
Durum kodu 503Yöntem 2: Redirect for Traffic Manager Errors
- Nasıl çalışır TR7'nin ürettiği seçili hatalarda istemci sabit bir adrese 302 ile yönlendirilir.
- Nerede açılırLoad Balancer → Actions → Redirect for Traffic Manager Errors
- Gereksinim TR7 dışında, aynı vService'e bağlı olmayan bir hedef adres
- vService tipi HTTP
Adım adım yapılandırma
Load Balancer → Actions → Add tıklanır.
Action Name girilir, Action Type = Redirect for traffic manager errors seçilir. Error Codes = 502, 503, 504; Redirect Location = https://durum.example.com/ (hangi hatalar bu aksiyona düşer).
Add tıklanır.
Load Balancer → Load Balancer vService List ekranında HTTP vService seçilip Edit tıklanır.
Details → Actions alanında aksiyon seçilir.
Save tıklanır.
Doğrulama
Kurum Servisleri bakımdayken curl -sI https://www.example.com/
302 + Location: https://durum.example.com/Sık Yapılan Hatalar
Status code varsayılanı 200'dür
Status code değiştirilmezse hata sayfası 200 koduyla gider; izleme araçları ve arama motorları hatayı fark etmez. Status code aksiyondaki bütün Error codes'a uygulandığı için her kod kendi değeriyle dönecekse her kod için ayrı aksiyon eklenir.
- Kurum Servisinin döndürdüğü 500'ü bu aksiyonla beklemek. Sunucudan dönen hatalar Show Content for Backend Service Errors ve Redirect for Backend Service Errors aksiyonlarının kapsamıdır (Backend 404 veya 500 döndüğünde özel bir hata sayfası gösterebilir miyim?).
- Hiç kod seçmeden kaydetmek. Error codes boşken aksiyon hiçbir şey yapmaz ve uyarı verilmez.
- WAF, CAPTCHA, karantina ve bekleme odası sayfalarının da değişmesini beklemek. Bu sayfalar kendi profillerindeki içerik sayfalarıyla yönetilir.
- Sayfanın stil ve görsellerini Kurum Servisinden çekmek. Hata anında Kurum Servisine ulaşılamadığı için sayfa çıplak görünür; içerik sayfaya gömülür.
- Yönlendirme hedefini aynı vService'te barındırmak. Hedef de aynı hatayı verir ve kullanıcı döngüye girer.
Dokümantasyonda nasıl yapılır
