Belirli isteklere backend'e gitmeden doğrudan içerik dönebilir miyim (Show Content)?
Kısa cevap
Evet. Show Content aksiyonu On Request aşamasında çalıştığında yanıtı TR7 kendisi üretir: seçilen Content Page, seçilen Status Code ile döner ve istek Kurum Servisine gitmez. Conditions alanına koşul eklenerek yalnızca belirli yollara ya da istemcilere uygulanır; koşul boş bırakılırsa bütün trafiğe uygulanır. robots.txt, kısa bir JSON yanıtı ya da erişim engeli sayfası gibi statik yanıtlar için kullanılır; yalnızca HTTP vService'te bulunur. Status code varsayılanı 200'dür.
Sorun: Basit Bir Yanıt İçin Sunucuya Gitmek Gereksiz
robots.txt, sabit bir JSON yanıtı, geçici bir uyarı ya da erişim engeli sayfası gibi değişmeyen içerikler için isteğin Kurum Servisine gitmesi gereksiz yük oluşturur; bazı yollara ise sunucuya hiç ulaşılmaması istenir.
Çözüm: İki Yöntem
Show content isteği sonlandırır: Actions listesinde kendisinden sonra gelen istek aksiyonları o istek için çalışmaz ve Kurum Servisi seçilmez.
| Durumunuz | Uygun yöntem |
|---|---|
| Belirli yollara ya da bütün trafiğe sabit yanıt (arayüz) | Yöntem 1: Show content |
| Komut satırından | Yöntem 2: WEB-CLI |
Yöntem 1: Show Content Önerilen
- Nasıl çalışır Koşula uyan istekler için yanıt TR7'de üretilir; diğer istekler Kurum Servislerine gider. Koşul boşsa bütün istekler aynı yanıtı alır.
- Nerede açılırLoad Balancer → Actions → Show Content
- Gereksinim İçerik Content Pages'te; sayfa vService'in tampon boyutunun (Buffer Size(kB)) 2 kB eksiğini aşmaz
- 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 = robots, Content Type = text/plain; Content alanına (HTML source modunda) her satıra bir kural yazılır (statik içerik senaryosu):
User-agent: *
Disallow: /admin/Add tıklanır.
Load Balancer → Conditions → Add tıklanır (nasıl eklenir).
Criteria = Path, Exact match, değer /robots.txt. Bütün trafiğe aynı yanıt verilecekse (ör. geçici duyuru) koşul oluşturulmaz; 4–6. adımlar atlanır.
Add tıklanır.
Load Balancer → Actions → Add tıklanır (nasıl eklenir).
Action Name girilir, Action Type = Show content seçilir.
- Execution Level = On request (varsayılan; kayıttan sonra değiştirilemez).
- Content Page =
robots(varsayılanı Access Denied Page (English)). - Status Code = 200 (varsayılan); erişim engeli sayfası için 403.
- Conditions = 5. adımdaki koşul; bütün trafik için boş bırakılır.
- Hit Counter (varsayılan kapalı) açılırsa yanıtlar sayılır.
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).
Doğrulama
curl -i https://www.example.com/robots.txt
HTTP/1.1 200 · Content-Type: text/plain; charset=utf-8 · sayfa içeriğiHit counter açıksa vService panosunun Action Hits sekmesinde aksiyonun sayısı artar; Kurum Servisinin erişim logunda /robots.txt görünmez.
Sayı artar · Kurum Servisine istek yokYöntem 2: WEB-CLI
- Nasıl çalışır İçerik, koşul, aksiyon ve vService bağlantısı WEB-CLI komutlarıyla oluşturulur. Örnek,
/healthyoluna sabit bir JSON yanıtı döndürür. - Nerede açılır TR7 WEB-CLI →
lb page·lb condition·lb action·lb service - Gereksinim WEB-CLI erişimi; içerik tek satırda ve
|karakteri içermeden yazılır (çok satırlı içerik arayüzden hazırlanır) - vService tipi HTTP
Adım adım yapılandırma
İçerik çift tırnak içerdiği için tek tırnakla yazılır:
lb page add name saglik-json --contentType application/json --content '{"status":"ok"}'Eşleştirme yazılmazsa Exact match kullanılır:
lb condition add criteria path query /health --name saglik-yoluAksiyon koşulu adıyla değil kimliğiyle bağlar; lb condition add başarılı olduğunda çıktı vermez; kimlik lb condition list çıktısının id sütununda görülür.
--contentProfile sayfanın adını alır; --ruleLoc yazılmazsa aksiyon istek aşamasında çalışır:
lb action add type showContent name saglik --contentProfile saglik-json --statusCode 200 --cond <koşul-kimliği>lb service show <vService>--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 saglikDoğrulama
curl -i https://www.example.com/health
HTTP/1.1 200 · application/json · {"status":"ok"}Sık Yapılan Hatalar
- Status code'u unutmak. Varsayılan 200'dür; engelleme sayfası için 403 gibi uygun kod seçilir.
- Sonraki aksiyonların da çalışmasını beklemek. Show content isteği sonlandırır; listede ondan sonra gelen istek aksiyonları o istek için çalışmaz (Bir action trafiği engeller veya yönlendirirse sonraki action'lar çalışır mı?).
- Güvenlik başlıklarının bu yanıta eklenmesini beklemek. Manage HTTP Security Headers ve On response başlık aksiyonları Kurum Servisinden dönen yanıtlara uygulanır; TR7'nin ürettiği bu yanıta eklenmez.
- Execution level'ı sonradan değiştirmeye çalışmak. Kayıttan sonra değiştirilemez; farklı aşama için yeni aksiyon oluşturulur.
- Büyük bir sayfa seçmek. Sayfa vService'in Buffer size(kB) değerinin 2 kB eksiğini aşarsa vService yapılandırması yüklenemez (Content Pages profili nedir; kendi HTML sayfamı nasıl hazırlarım?).
Dokümantasyonda nasıl yapılır
