Bakım sayfasını nasıl yayınlarım?
Kısa cevap
Planlı bakımda en doğrudan yol, bakım sayfasını Content Pages'te hazırlayıp Show Content aksiyonuyla (Execution Level On Request, Status Code 503) vService'in Actions alanına eklemektir; istekler Kurum Servislerine gitmez. Kurum Servisleri Maintenance Mode'a alınarak da bakım yapılabilir; bu durumda TR7'nin ürettiği 503 yerine sayfayı Show Content for Traffic Manager Errors aksiyonu gösterir (Status code 503 seçilir, varsayılanı 200'dür). Sayfa TR7 dışında barındırılıyorsa Redirect for Traffic Manager Errors ya da Location Redirection, ayrı bir bakım sunucusu varsa Backup Service kullanılır.
Sorun: Bakım Sırasında Kullanıcılar Hata Görüyor
Uygulama güncellenirken ya da sunucular bakımdayken kullanıcılar bağlantı hatası ya da TR7'nin genel 503 sayfasını görür. Bunun yerine bakımın sürdüğünü açıklayan bir sayfa gösterilir; sayfa 503 koduyla döndüğünde arama motorları durumu geçici sayar ve sayfayı dizine almaz.
Çözüm: Yedi Yöntem
Yöntemler iki gruba ayrılır: sayfayı sunucuların durumundan bağımsız olarak hemen gösterenler (Yöntem 1, 6) ve sunucular bakıma alındığında ya da çöktüğünde devreye girenler (Yöntem 2–5). Bakım sayfası her durumda HTTP vService'te gösterilir; yalnızca Backup Service L7 TCP'de de çalışır.
| Durumunuz | Uygun yöntem |
|---|---|
| Planlı bakım; sayfa hemen, sunucuların durumundan bağımsız gösterilsin | Yöntem 1: Show content |
| Sunucular Maintenance mode'a alınacak; sayfa TR7'de dursun | Yöntem 2: Maintenance mode + Show Content for Traffic Manager Errors |
| Sayfa yalnızca bütün sunucular devre dışıyken çıksın | Yöntem 3: Show content + Number of Active Servers |
| Sunucular bakımda; sayfa TR7 dışında barındırılıyor | Yöntem 4: Redirect for Traffic Manager Errors |
| Bakım sayfasını ayrı bir sunucu sunsun | Yöntem 5: Backup service |
| Planlı bakımda herkes TR7 dışındaki bir bakım adresine gönderilsin | Yöntem 6: Location redirection |
| Komut satırından | Yöntem 7: WEB-CLI |
Yöntem 1: Show Content Önerilen
- Nasıl çalışır TR7 istek aşamasında yanıtı kendisi üretir; istek Kurum Servisine gitmez ve listede bu aksiyondan sonra gelen aksiyonlar çalışmaz.
- Nerede açılırLoad Balancer → Profiles → Content Pages · Load Balancer → Actions → Show Content
- Gereksinim Bakım sayfası Content Pages'te; sayfanın CSS ve görselleri sayfaya gömülü
- vService tipi HTTP
Adım adım yapılandırma
Load Balancer → Profiles → Content Pages → Add tıklanır (nasıl eklenir).
İstenirse formun üstündeki hazır sayfa şablonlarından biri tıklanıp içerik forma kopyalanır. Content Page Name (zorunlu, benzersiz) girilir, Content Type varsayılan text/html bırakılır ve Content alanına bakım metni yazılır. Ayrıntı: Content Pages profili nedir; kendi HTML sayfamı nasıl hazırlarım?
Add tıklanır.
Load Balancer → Actions → Add tıklanır.
Action Name girilir, Action Type = Show Content seçilir.
- Execution Level = On request (varsayılan); istek Kurum Servisine hiç gönderilmez.
- Content Page = 3. adımdaki sayfa (varsayılanı Access Denied Page (English)).
- Status Code = 503 (varsayılanı 200).
- Conditions boş bırakılırsa bütün istekler bakım sayfasını görür. Ekibin bakım sırasında siteye erişmesi için ofis ağını tanımlayan bir Source IP koşulu (Manual,
198.51.100.0/24) oluşturulur ve burada listede!KoşulAdıbiçiminde görünen olumsuz hâli seçilir (Bir koşulu olumsuz ("şu değilse") olarak kullanabilir miyim?).
Add tıklanır.
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). Bakım bitince aksiyon aynı alandan çıkarılır ve vService yeniden kaydedilir.
Doğrulama
curl -i https://www.example.com/
HTTP/1.1 503 + bakım sayfası; ofis ağından normal yanıtHTTP Logs ekranında istekler 503 durum koduyla ve bir Kurum Servisine gönderilmeden görünür.
Durum kodu 503Yöntem 2: Maintenance Mode + Show Content for Traffic Manager Errors
- Nasıl çalışır Maintenance mode'daki Kurum Servisi yeni bağlantı almaz, açık bağlantıları tamamlanır. Hiç kullanılabilir sunucu kalmayınca TR7 503 üretir; aksiyon bu hata yanıtının yerine seçilen sayfayı koyar.
- Nerede açılırLoad Balancer → Backend Services → Maintenance Mode · Actions → Show Content for Traffic Manager Errors
- Gereksinim vService'teki bütün Kurum Servisleri bakıma alınır
- vService tipi HTTP
Adım adım yapılandırma
Bakım sayfası Content Pages'te yoksa Yöntem 1'in 1–3. adımlarıyla eklenir.
Load Balancer → Actions → Add tıklanır.
Action Type = Show Content for Traffic Manager Errors seçilir.
Error Codes listesinde 503 seçilir (sunucu hatalarını da kapsamak için 502 ve 504 eklenebilir; seçilen bütün kodlar aşağıdaki tek Status code ile döner); Content Page = bakım sayfası; Status Code = 503. Status code varsayılan 200 bırakılırsa hata yanıtı 200 koduyla gider. Bu aksiyon yanıta karakter kümesi eklemediğinden Türkçe karakterli sayfanın head bölümünde <meta charset="utf-8"> bulunmalıdır.
Add tıklanır.
vService Edit ile açılır.
Details → Actions alanında aksiyon seçilir.
Save tıklanır. Aksiyon koşulsuz çalışır ve yalnızca TR7'nin kendi ürettiği seçili hatalarda devreye girer; bakım dışında vService'te kalabilir.
Load Balancer → Backend Services ekranında Kurum Servisi seçilip Edit tıklanır (Edit).
Maintenance Mode (varsayılan kapalı) açılır.
Formun altındaki Edit tıklanır; vService'teki her Kurum Servisi için 9–11. adımlar tekrarlanır. Bakım bitince Maintenance mode kapatılır; health check başarılı olunca sunucu trafiğe döner.
Doğrulama
curl -i https://www.example.com/
HTTP/1.1 503 + bakım sayfasıBackend Services listesinde bakımdaki sunucuların adının yanında bakım (ambulans) ikonu görünür.
Bütün sunucular bakım ikonuyla işaretliYöntem 3: Show Content + Number of Active Servers Koşulu
- Nasıl çalışır Sayfa yalnızca vService'in Default Backend Services listesindeki sunuculardan hiçbiri kullanılabilir değilken gösterilir; sunucular döner dönmez trafik kendiliğinden normale döner.
- Nerede açılırConditions → Number of Active Servers · Actions → Show Content
- Gereksinim Kurum Servislerinde health check; health check'i olmayan sunucu her zaman sağlıklı sayılır
- vService tipi HTTP
Adım adım yapılandırma
Bakım sayfası Content Pages'te yoksa Yöntem 1'in 1–3. adımlarıyla eklenir.
Load Balancer → Conditions → Add tıklanır.
Criteria = Number of Active Servers, Operator = Equals to (varsayılan), değer 0 girilir. Health check'i başarısız olan ya da Maintenance mode'daki sunucular sayılmaz; Conditional Backend Services'teki sunucular bu sayıya dahil değildir.
Add tıklanır.
Load Balancer → Actions → Add tıklanır.
Action Type = Show Content seçilir: Execution Level = On request, Content Page = bakım sayfası, Status Code = 503, Conditions = 3. adımdaki koşul (otomatik bakım sayfası senaryosu).
Add tıklanır.
vService Edit ile açılır.
Details → Actions alanında aksiyon seçilir.
Save tıklanır.
Doğrulama
Bütün sunucular bakıma alınır ya da durdurulur ve curl -i https://www.example.com/ gönderilir; bir sunucu geri açılınca tekrarlanır.
Sunucu yokken 503 + bakım sayfası · sunucu dönünce normal yanıtYöntem 4: Redirect for Traffic Manager Errors
- Nasıl çalışır TR7'nin ürettiği seçili hatalarda istemci, TR7 dışında barındırılan bakım adresine 302 ile yönlendirilir.
- Nerede açılırLoad Balancer → Actions → Redirect for Traffic Manager Errors
- Gereksinim TR7 dışında erişilebilir bir bakım adresi; Kurum Servisleri bakımda
- vService tipi HTTP
Adım adım yapılandırma
Load Balancer → Actions → Add tıklanır.
Action Type = Redirect for Traffic Manager Errors seçilir.
Error Codes listesinde 503 seçilir; Redirect Location alanına bakım adresi (https://durum.example.com/bakim) yazılır.
Add tıklanır.
vService Edit ile açılır.
Details → Actions alanında aksiyon seçilir.
Save tıklanır.
Load Balancer → Backend Services ekranında Kurum Servisi seçilip Edit tıklanır.
Maintenance Mode açılır.
Formun altındaki Edit tıklanır; vService'teki her Kurum Servisi için 8–10. adımlar tekrarlanır.
Doğrulama
curl -sI https://www.example.com/
302 + Location: https://durum.example.com/bakimYöntem 5: Backup Service
- Nasıl çalışır Bakım sayfasını sunan sunucu yedek olarak eklenir; ana sunucular bakıma alınınca ya da çökünce trafik yedeğe gider, ana sunucular dönünce trafik kendiliğinden onlara geri döner.
- Nerede açılırLoad Balancer → Backend Services → Backup Service
- Gereksinim Bakım sayfasını sunan ayrı bir sunucu
- vService tipi HTTP · L7 TCP
Adım adım yapılandırma
Load Balancer → Backend Services → Add tıklanır.
Bakım sunucusunun adresi girilir (ör. 192.0.2.50:80; Kurum Servisi nasıl eklenir; hangi bilgiler zorunludur?); Backup Service (varsayılan kapalı) açılır. Yedeğin de çalışıp çalışmadığı izlenmesi için bir health check profili seçilir.
Add tıklanır.
vService Edit ile açılır.
Bakım sunucusu Default Backend Services listesine eklenir. Normal çalışmada yedeğe trafik gitmez.
Save tıklanır.
Load Balancer → Backend Services ekranında ana Kurum Servisi seçilip Edit tıklanır.
Maintenance Mode açılır.
Formun altındaki Edit tıklanır; her ana Kurum Servisi için 7–9. adımlar tekrarlanır. Ana sunucuların hepsi bakıma alınınca trafik yedek sunucuya geçer. Birden fazla yedek varsa yalnızca kullanılabilir durumdaki ilk yedek trafik alır.
Doğrulama
curl -i https://www.example.com/
Bakım sunucusunun sayfasıYöntem 6: Location Redirection
- Nasıl çalışır Planlı bakım boyunca koşula uyan bütün istekler TR7 dışındaki bakım adresine 302 ile yönlendirilir; sunucuların durumuna bakılmaz.
- Nerede açılırLoad Balancer → Actions → Location Redirection
- Gereksinim En az bir koşul (koşulsuz Location redirection çalışmaz); TR7 dışında erişilebilir bir bakım adresi
- vService tipi HTTP
Adım adım yapılandırma
Load Balancer → Actions → Add tıklanır.
Action Type = Location Redirection seçilir.
Redirect Code = 302: Found (Moved Temporarily); Redirect Location = https://durum.example.com/bakim. Conditions alanında herkes için hazır Always koşulu, ekip hariç tutulacaksa ofis ağı Source IP koşulunun !KoşulAdı biçiminde görünen olumsuz hâli seçilir.
Add tıklanır.
vService Edit ile açılır.
Details → Actions alanında aksiyon seçilir.
Save tıklanır. Bakım bitince aksiyon çıkarılır.
Doğrulama
curl -sI https://www.example.com/herhangi-bir-sayfa
302 + Location: https://durum.example.com/bakimYöntem 7: WEB-CLI
- Nasıl çalışır Yöntem 1'deki sayfa, Show content aksiyonu ve vService bağlantısı WEB-CLI komutlarıyla oluşturulur.
- Nerede açılır TR7 WEB-CLI →
lb page·lb action·lb service - Gereksinim WEB-CLI erişimi; sayfa içeriği tek satırda ve
|karakteri içermeden yazılır (uzun ya da çok satırlı sayfa arayüzden hazırlanır) - vService tipi HTTP
Adım adım yapılandırma
Sayfa komutu; --contentType yazılmazsa text/html kullanılır:
lb page add name bakim-sayfasi --content "<h1>Bakımdayız</h1><p>Kısa süre sonra yeniden hizmetteyiz.</p>"Koşulsuz, istek aşamasında (varsayılan) çalışan ve 503 dönen aksiyon; --contentProfile sayfanın adını alır:
lb action add type showContent name bakim --contentProfile bakim-sayfasi --statusCode 503lb service show <vService>Çıktıdaki rules.0, rules.1 … satırları vService'teki aksiyonları sırasıyla gösterir. --rules.N o sıradaki aksiyonun yerine geçer; yeni aksiyon ilk boş sıraya yazılır.
vService'te iki aksiyon (0 ve 1) varsa yeni aksiyon 2. sıraya yazılır; hiç aksiyon yoksa --rules.0 kullanılır:
lb service update id <vService> --rules.2 bakimBakım bitince aksiyon lb service update id <vService> --rules.2.delete ile listeden çıkarılır; aradaki sürede sıra değiştiyse silinecek sıra önce lb service show ile görülür.
Doğrulama
curl -i https://www.example.com/
HTTP/1.1 503 + BakımdayızSık Yapılan Hatalar
Status code varsayılanı 200'dür
Show content ve Show Content for Traffic Manager Errors aksiyonlarında Status Code varsayılan olarak 200 gelir. Değiştirilmezse bakım sayfası arama motorlarına gerçek içerik gibi görünür ve hata yanıtları 200 koduyla gider; bakım sayfasında 503 seçilir.
- Bütün sunucular kapalıyken Show content for backend service errors kullanmak. Bu aksiyon yalnızca Kurum Servisinden dönen yanıtlarda çalışır; sunucu yokken TR7'nin ürettiği 503'te Show Content for Traffic Manager Errors kullanılır.
- Sayfanın CSS ve görsellerini Kurum Servisinden çekmek. Bakımda sunucular kapalı olduğu için stil ve görseller yüklenmez; sayfaya gömülür ya da TR7 dışındaki bir adresten çekilir.
- Bakım bitince aksiyonu kaldırmayı unutmak. Show content ya da Location redirection vService'te kaldıkça bütün istekler bakım sayfasını görür.
- Health check olmadan Number of active servers'a güvenmek. Health check atanmamış sunucu her zaman sağlıklı sayılır; koşul hiç 0 olmaz.
- Sayfayı sıfırdan yazmak zorunda olduğunu sanmak. Hazır sayfalar şablon olarak kopyalanıp düzenlenebilir (Hazır bakım / hata sayfası şablonları var mı?).
Dokümantasyonda nasıl yapılır
