Skip to content
Smarter by Design.Simpler for Business

Conditions ​

Conditions Nedir? ​

Conditions, TR7 Load Balancer üzerinden geçen HTTP ve L7 TCP trafiğinin belirli özelliklerini kontrol eden, yeniden kullanılabilir karar mekanizmalarıdır.

Koşullar, modern Load Balancer ve Application Delivery Controller (ADC) sistemlerinin temel yapı taşlarından biridir. Geleneksel sistemlerdeki script tabanlı koşul mantığının TR7'deki GUI-tabanlı ve no-code/low-code karşılığıdır. İşlevsel olarak, "bir durumun sağlanıp sağlanmadığını" kontrol eder ve Aksiyonların ne zaman çalışacağını veya trafik dağılımının nasıl yapılacağını belirler.

Her Koşul, bir veya birden fazla Aksiyon veya vService üzerinde kullanılarak trafiğin dinamik olarak yönetilmesini sağlar. Koşullar, AND/OR mantığı ile birleştirilerek karmaşık karar ağaçları oluşturmanıza olanak tanır.

Neler Kontrol Edilebilir? ​

  • İstemci Bilgileri: Kaynak IP adresi, ülke, tarayıcı, mobil platform, bot türü
  • İstek Özellikleri: Path, query parametresi, HTTP method, header değerleri, cookie, request body
  • Sunucu Durumu: Sağlıklı kurum servisi sayısı, response time, status code
  • Güvenlik: IP Intelligence, WAF saldırı imzası, blacklist kontrolü
  • Oturum ve Kimlik: Kullanıcı doğrulaması, AGS oturum bilgisi, karantina durumu
  • Network: Hedef IP/Port, SSL cipher/versiyon, SNI bilgisi

Koşulların Çalışma Prensibi ​

TR7 Koşulları, trafiğin yaşam döngüsünde gerçek zamanlı olarak değerlendirilir ve sonuç olarak true (doğru) veya false (yanlış) döner.

Koşul Değerlendirme Sırası ​

  • Koşullar, Aksiyon çalıştırılmadan önce değerlendirilir.
  • Bir Aksiyon'da birden fazla koşul varsa, AND/OR operatörlerine göre birleştirilir:
    • AND (◆): Tüm koşullar true olmalı → Aksiyon çalışır.
    • OR (◇): En az bir koşul true olmalı → Aksiyon çalışır.
  • Koşul false dönerse, ilgili Aksiyon atlanır ve bir sonraki Aksiyon değerlendirilir.

Koşul Eşleştirme Kriterleri ​

Her koşul tipi için farklı eşleştirme operatörleri kullanılır.

Metin Tabanlı Koşullar (Path, Header, Cookie, vb.):

OperatörAnlamıÖrnek
Exact MatchBirebir tam eşleşme/admin = /admin, /Admin ≠ /admin
Startİle başlar/api/v1/users START /api
Endİle biterimage.jpg END .jpg
Includesİçerir/user/123 INCLUDES /user
RegexRegular expression (düzenli ifade)/user/\d+ → /user/123 eşleşir
Is PresentDeğere bakılmaksızın öğenin var olup olmadığı; yalnızca HTTP Header, Query Parameter, User/Server Cookie ve RDP Cookie koşullarında sunulurX-Debug başlığı istekte varsa eşleşir

Sayısal Koşullar (Port, Size, Count, vb.):

OperatörAnlamı
< LESS THANKüçüktür
= EQUALS TOEşittir
> GREATER THANBüyüktür
RANGEAralık

Büyük/Küçük Harf Duyarlılığı (Case Sensitivity) ​

  • Default olarak koşullar case-sensitive'dir (/Admin ≠ /admin).
  • Case-insensitive seçeneği ile büyük/küçük harf farkı gözetilmez.

Koşulların Aksiyonlarla İlişkisi ​

  • Koşulsuz Aksiyon: Tüm trafik üzerinde her zaman çalışır.
  • Koşullu Aksiyon: Sadece koşullar sağlandığında çalışır.

Koşulların Yeniden Kullanılabilirliği ​

  • Bir koşul, birden fazla Aksiyon veya vService'de kullanılabilir.
  • Koşulda yapılan değişiklik, tüm ilişkili Aksiyon/vService'lere yansır.
  • "Used in" özelliği ile koşulun nerede kullanıldığı takip edilir.

Otomatik NOT (Değili) Koşulu Oluşturma ​

Tanımlanan her koşul, kullanım yerlerindeki seçim listelerinde iki biçimde sunulur: koşulun kendisi ve değili (NOT). Ayrı bir NOT nesnesi oluşturulmaz; değil, koşulun kullanıldığı yerde tutulan bir işarettir; bu nedenle Conditions listesinde yalnızca koşulun kendisi görünür.

Nasıl Çalışır:

  • Yeni bir koşul eklenir: SourceIP_OfficeNetwork = 192.168.1.0/24
  • Kullanım yerlerindeki seçim listelerinde iki seçenek belirir: SourceIP_OfficeNetwork ve NOT(SourceIP_OfficeNetwork)
  • NOT biçimi "Conditions" listesinde ayrı bir kayıt olarak görünmez.
  • Aksiyon veya Conditional Backend Services eklerken dropdown'da seçilebilir.

Kullanım Alanları:

1. Aksiyon Eklerken:

  • Load Balancer → Actions → Add/Edit
  • Conditions dropdown'ında hem orijinal hem NOT versiyonu görünür.
  • Örnek: Path = /admin ve NOT(Path = /admin) her ikisi de seçilebilir.

2. Conditional Backend Services:

  • vService → Conditional Backend Services seçimi yapılırken,
  • Kurum Servislerini koşula göre yönlendirirken NOT versiyonu kullanılabilir.
  • Örnek: /admin dışındaki tüm istekleri Backend-B'ye gönder → NOT(Path = /admin) kullan.
  • Manuel NOT koşulu oluşturmaya gerek yok: Sistem otomatik halleder.
  • Tek yerden yönetim: Orijinal koşulu güncellerseniz, NOT versiyonu da otomatik güncellenir.
  • Daha az konfigürasyon karmaşası: Liste sadece pozitif koşulları gösterir, negatif versiyonlar arka planda hazır.
  • Esnek mantık (flexible logic): Hem "eşleşiyor" hem "eşleşmiyor" senaryoları kolayca uygulanabilir.

TIP

Örnek: Ofis IP Whitelist Senaryosu ​

Tanımlanan Koşul: SourceIP_OfficeNetwork = 192.168.1.0/24

Aksiyon: Ofis IP'leri dışındaki tüm isteklere güvenlik kontrolü.

  • Koşul: NOT(SourceIP_OfficeNetwork) → CAPTCHA göster + Rate limiting uygula gibi.

Koşul Tipleri ve Kategorileri ​

TR7, farklı trafik senaryolarına yönelik 40'tan fazla koşul tipi sunar. Bu koşullar, işlevlerine göre aşağıdaki kategorilere ayrılabilir.

40+
Koşul Tipi
Trafik özelliklerini kontrol eden hazır koşul tipleri
11
Kategori
İstemci, istek, yanıt, güvenlik, SSL ve daha fazlası
AND / OR
Mantık Operatörleri
Çok katmanlı karar ağaçları kurulabilir
NOT
Otomatik Değil
Her koşulun negatif versiyonu otomatik hazırlanır

1. İstemci ve Cihaz Bilgileri ​

  • Source IP: İstemcinin kaynak IP adresi veya CIDR bloğu kontrolü. Whitelist/blacklist, coğrafi kısıtlama için kullanılır.
  • Blacklist IP Category: IP Intelligence ile IP reputation kontrolü. Malicious, Proxy, Tor, Spam gibi kategoriler.
  • Browser: Chrome, Firefox, Safari, IE gibi tarayıcı tipi tespiti.
  • Mobile Platform: iOS, Android, Windows Phone gibi mobil platform kontrolü.
  • Bot Type: Search engine bot, malicious bot, good bot ayrımı.

2. İstek Özellikleri (Request) ​

3. Yanıt Özellikleri (Response) ​

4. Kurum Servisi ve Sunucu Durumu ​

5. Trafik Yoğunluğu ve Rate Kontrolü ​

6. Güvenlik ve WAF ​

7. SSL/TLS ​

8. Network ​

9. Kimlik Doğrulama ve Oturum ​

10. Özel ve Gelişmiş ​

11. Diğer ​

Koşulların Avantajları ​

TR7 Koşulları, geleneksel script tabanlı trafik kontrol yöntemlerine göre birçok operasyonel ve teknik avantaj sunar.

Kod Yazmaya Gerek Yok (No-Code/Low-Code) ​

  • Koşullar tamamen GUI tabanlı bir arayüz üzerinden oluşturulur.
  • Herhangi bir programlama dili veya script yazma bilgisine gerek yoktur.
  • Karmaşık if/else logic'i basit dropdown ve input field'larla yapılır.
  • Syntax hataları, mantık hataları veya runtime crash riski ortadan kalkar.

Merkezi ve Tek Noktadan Yönetim ​

  • Bir kez oluşturulan koşul, birden fazla Aksiyon ve vService üzerinde yeniden kullanılabilir.
  • Koşulda yapılan bir değişiklik, o koşulu kullanan tüm Aksiyon/vService'lere otomatik olarak yansır.
  • Koşulun hangi Aksiyon/vService'lerde kullanıldığı "Used in" özelliği ile kolayca izlenir.
  • Merkezi yönetim, tutarsızlık riskini minimize eder.

Güçlü ve Esnek Mantık Yapısı ​

  • AND/OR operatörleri ile çok katmanlı koşul zincirleri kurulabilir.
  • Karmaşık business logic'i basit GUI ile ifade edilebilir.
  • Örnek: "(IP A'dan geliyorsa VEYA IP B'den geliyorsa) VE (path /admin ise) VE (saat 18:00-09:00 arasındaysa)"

Smart Variables ile Dinamik Kontrol ​

  • Koşullar içinde Variables kullanılarak dinamik değerlendirmeler yapılır.
  • İstemci IP, Host, Path, Header, Cookie, Timestamp gibi 50+ veri noktasına erişim.
  • Runtime'da dinamik değerler üretilir ve koşullarda kullanılır.

Geniş Eşleştirme Seçenekleri ​

  • Her koşul tipi için optimize edilmiş operatörler.
  • Case-sensitive / Case-insensitive seçenekleri.
  • CIDR bloğu, regex desteği.
  • Numeric, string, IP, list-based matching.

Test ve Debug Kolaylığı ​

  • Debug Mode ile koşul eşleşmelerini gerçek zamanlı izleme.
  • HTTP/TCP loglarında hangi koşulun true/false döndüğünü görme.
  • Production'a geçmeden önce test ortamında doğrulama.

Yüksek Performans ve Ölçeklenebilirlik ​

  • Koşullar, yüksek throughput ve düşük latency için optimize edilmiştir.
  • Büyük ölçekli deploymentlarda (yüksek trafikli web siteleri) verimli çalışır.
  • Minimal sistem kaynağı tüketimi ile maksimum işlem kapasitesi sağlar.

Operasyonel En İyi Uygulamalar ​

TR7 Koşullarını production ortamlarında verimli ve güvenli kullanmak için aşağıdaki en iyi uygulamaları takip edin.

  • Açıklayıcı isimler kullanın. Koşulun ne kontrol ettiğini net bir şekilde belirtin; Condition1, Test gibi anlamsız isimlerden kaçının.
  • İsimlendirme standardı oluşturun. Tutarlılık için [KontrolEdilen]_[Değer]_[Amaç] gibi bir format belirleyin ve ekipçe uygulayın.
  • Doğru operatörü seçin. Path kontrolü için START, tam eşleşme için EXACT MATCH, içerik kontrolü için INCLUDES kullanın; her birinin performans maliyeti farklıdır.
  • Case-sensitivity'ye dikkat edin. Default case-sensitive olduğundan kullanıcı input'u içeren koşullarda case-insensitive seçeneğini değerlendirin.
  • CIDR bloklarını tercih edin. Birden fazla tekil IP yerine 192.168.1.0/24 gibi CIDR blokları daha performanslıdır.
  • Regex'i minimize edin. Regex en yavaş ve en yüksek CPU maliyetli eşleştirme yöntemidir; mümkünse START/END/INCLUDES tercih edin.
  • AND/OR karmaşıklığını sınırlayın. Çok fazla AND/OR karışımından kaçının; karmaşık logic'i birden fazla Aksiyon'a bölün.
  • Önce test ortamında deneyin ve "Used in" kontrolü yapın. Koşulu değiştirmeden önce hangi Aksiyon/vService'lerde kullanıldığını mutlaka kontrol edin.
İsimlendirme Kuralları (örneklerle)

Açıklayıcı isimler kullanın: Koşulun ne kontrol ettiğini net bir şekilde belirtin.

  • ✅ İyi örnekler: Check_SourceIP_OfficeNetwork, Path_AdminPanel, WAF_SQLInjection_Block
  • ❌ Kötü örnekler: Condition1, Test, New_Cond

İsimlendirme standardı oluşturun: Tutarlılık için bir format belirleyin.

  • Format: [KontrolEdilen]_[Değer]_[Amaç]
  • Örnek: IP_Blacklist_Security, Path_API_RateLimit, Browser_IE_Compatibility

Kullanım amacını belirtin: Koşulun nerede/nasıl kullanılacağını isimde ifade edin.

  • Örnek: ForAdminPath_IPWhitelist, ForAPI_BandwidthLimit
Operatör Seçimi ve Eşleştirme Stratejileri

Doğru operatörü kullanın:

  • Path kontrolü: START daha verimli (örnek: /api/v1/users → /api ile başlıyor mu?)
  • Tam eşleşme gerekiyorsa: EXACT MATCH.
  • İçerik kontrolü: INCLUDES (ama performans maliyeti yüksek).
  • Regex: Sadece gerektiğinde (en yüksek CPU maliyeti).

Case-sensitivity'ye dikkat edin:

  • Default case-sensitive → /Admin ≠ /admin
  • Kullanıcı input'u varsa case-insensitive kullanın.

CIDR blokları tercih edin:

  • Birden fazla IP yerine CIDR: 192.168.1.0/24 (256 IP)
  • IP listesinden daha performanslı.
Regex Kullanımında Dikkat

Regex'i minimize edin: Regex en yavaş matching yöntemidir.

  • ✅ Tercih: START, END, INCLUDES
  • ❌ Kaçın: Karmaşık regex pattern'leri.

Regex'i optimize edin:

  • Gereksiz capturing group'ları kaldırın: (pattern) yerine pattern
  • Anchor kullanın, gereksiz joker eklemeyin: /api/.* yerine ^/api/
Smart Variables ile Dikkat Edilecekler

Smart Variable syntax'ını doğru kullanın:

  • Köşeli parantez: [İstemci IP adresi]
  • Büyük/küçük harf önemli.
  • Dökümanı kontrol et.

Runtime değerlerini bilin:

  • [Host] port içerebilir: example.com:443
  • [Path] query string içermez: /api/users (query ayrı)
Production Deployment Kontrol Listesi
  • Önce test ortamında deneyin: Koşul mantığını staging'de doğrulayın.
  • "Used in" kontrolü yapın: Koşulu değiştirmeden önce hangi Aksiyon/vService'lerde kullanıldığını kontrol edin.
  • Incremental test:
    • Koşulu basit tut, test et.
    • Karmaşıklaştır, tekrar test et.
  • Rollback planınız olsun:
    • Önceki konfigürasyonu not alın.

Yaygın Kullanım Senaryoları ​

Aşağıda, TR7 Koşullarının canlı ortamlarda en sık kullanıldığı senaryolar yer almaktadır.

Güvenlik Senaryoları ​

Ofis IP Whitelist Kontrolü

Yönetim paneline sadece ofis ağından erişime izin ver.

  • Koşul: Source IP IN 192.168.1.0/24, 10.0.0.0/8
  • Aksiyon: Block (koşul sağlanmazsa)
  • Sonuç: ✅ Ofis → Erişim | ❌ Diğer → 403
Kötü Amaçlı IP Engelleme

IP Intelligence ile bilinen kötü IP'leri engelle.

Path Bazlı Kontroller ​

API Endpoint Rate Limiting

/api/ ile başlayan isteklere rate limiting uygula.

Admin Paneli Koruma

/admin ve /wp-admin path'lerine özel güvenlik katmanı.

Browser ve Cihaz Bazlı Kontroller ​

Internet Explorer Uyarısı

Eski IE kullanıcılarına modern tarayıcı uyarısı göster.

  • Koşul: Browser = Internet Explorer
  • Aksiyon: Show Content → Tarayıcı güncelleme sayfası
  • Sonuç: IE kullanıcıları bilgilendirilir.
Mobil Kullanıcı Yönlendirme

Mobil cihazlardan gelenleri mobil versiyona yönlendir.

Kurum Servisi Durumu Bazlı Kontroller ​

Tüm Kurum Servisleri Down

Hiç sağlıklı kurum servisi kalmadığında bakım sayfası göster.

Trafik Yoğunluğu Kontrolü ​

DDoS Koruması: Yüksek Bağlantı Sayısı

Aşırı bağlantı sayısında rate limiting aktif et.

Yüksek İstek Rate'i

Saniyede 1000+ istek geliyorsa sınırla.

Nasıl Eklenir? ​

Yeni bir Koşul, TR7 web yönetim arayüzü üzerinden aşağıdaki adımlar izlenerek eklenebilir:

  1. Sol altta bulunan TR7 logosuna tıklanarak Configuration Menu açılır.
  2. Load Balancer → Conditions → Add adımları takip edilir.
  3. Koşul için benzersiz ve açıklayıcı bir isim girilir. (Opsiyonel)
  4. Koşul tipi seçilir.
  5. Seçilen Koşul tipine göre ilgili değerler yapılandırılır.
  6. Add butonuna tıklanarak Koşul eklenir.

TIP

Hızlı arama ile sayfaya ulaşma ​

Menüde adım adım gezmek yerine, ekranın sol alt köşesindeki arama çubuğu kullanılarak ilgili sayfaya doğrudan ulaşılır. Arama çubuğu Windows'ta Alt + T, macOS'ta Opt + T kısayolu ile açılır; ardından aranan özelliğin adının yazılması yeterlidir.

Oluşturulan Koşul, bir veya birden fazla vService ve Aksiyon üzerinde kullanılabilir.

Koşulları Listeleme Ekranı ​

Load Balancer → Conditions yolu izlenerek TR7 cihazı üzerinde ekli olan tüm Koşulların listesine ulaşılır. Bu ekran üzerinde Koşul ekleme, düzenleme ve silme gibi işlemler yapılır.

Koşul Listeleme FormuKoşul Listeleme Formu

Tablo varsayılan olarak şu kolonlarla açılır:

KolonAçıklama
CriteriaKoşulun kontrol ettiği kriter (ör. HTTP Header, Path, Source IP, SSL SNI Info, Destination Port); uzun etiketin tamamı hücrenin üzerine gelindiğinde görünür.
NameKoşula verilen ad; ad girilmemişse -.
Condition DescriptionKoşulun okunabilir ifadesi (ör. IF HTTP Host request header is exactly www.tr7.com); ifadenin tamamı hücrenin üzerine gelindiğinde de görünür.

Ad ve ifade iki ayrı kolondur: bir Koşula ad verilmesi, ifadesinin listede görünmesini engellemez. Varsayılan olarak gizlenen kolon bulunmaz; kolon seçicisinde bu üç kolon yer alır. Tablo açılışta sıralanmamıştır; bir kolon başlığına tıklandığında önce azalan, sonra artan sıralama uygulanır, üçüncü tıklamada sıralama kalkar.

Araç çubuğundaki öğeler soldan sağa aşağıdaki sırayla yer alır; son iki öğe (Page Information ve Page Size) tablonun altındaki bilgi şeridinde bulunur.

Columns ​

Tabloda hangi kolonların gösterileceği seçilir; üç kolon da varsayılan olarak açıktır. Aynı panelde kolonlar sürüklenerek yeniden sıralanır ve kolon başına hizalama seçilir; Fit rows to the page butonuyla satır yüksekliği sayfaya sığdırılır, Reset butonuyla kolon düzeni varsayılana alınır. Düzen kullanıcı bazında saklanır.

Filter ​

Filter butonu, listede gösterilen Koşulları belirli kriterlere göre süzmek için kullanılır; buton etkin filtre sayısını rozetle gösterir. Şeritte iki kart bulunur: Criteria ve Used in. Kart başlığında filtre adı ile değer sayısı yer alır; karta tıklandığında değerler satır sayılarıyla altında listelenir. Used in kartı Koşulun kullanıldığı vService adlarını listeler; hiçbir vService'te kullanılmayan Koşullar için Unused Entries seçeneği bulunur. Seçimler kart şeridinin altında, tablonun hemen üstünde kapatılabilir etiketler olarak görüntülenir.

Export ​

Export butonuna tıklanarak tablo Excel, CSV veya PDF olarak dışa aktarılır. Açılan pencerede Filename, Format ve Data Source ile dışa aktarılacak Columns belirlenir; kalan alanlar biçime göre görüntülenir: CSV'de CSV Separator, Excel'de Excel Sheet Name, PDF'te Page Orientation ve Page Size.

Add ​

Add butonuna tıklanarak yeni bir Koşul oluşturma formu yeni bir sekmede açılır.

Delete ​

Bir veya birden fazla Koşul seçilip Delete butonuna tıklandığında ilgili Koşullar silinir. Silmeden önce "Are you sure that you want to delete conditions object?" onayı istenir; birden fazla Koşul seçiliyse metin "Are you sure you want to delete N conditions objects?" olur.

WARNING

Onay penceresi Koşulun kullanım yerlerini göstermez. Silmeden önce önizleme panelindeki Used in sekmesiyle Koşulun hangi Aksiyon ve vService'lerde kullanıldığı kontrol edilmelidir.

Kullanımdaki bir Koşulun silinmesi engellenmez. Koşul; kullanıldığı Aksiyonların, cache kurallarının ve vService'lerin koşul listelerinden kalıcı olarak çıkarılır, içinde başka koşul kalmayan koşul grubu da atılır. Bütün koşulları bu şekilde silinen bir Aksiyon koşulsuz hâle gelir ve bağlı olduğu vService'in bütün trafiğine uygulanır; koşul zorunlu Aksiyon tipleri ise hiç tetiklenmez.

Edit ​

Edit butonuna tıklanarak seçili Koşulun düzenleme formu Edit sekmesinde açılır. Buton yalnızca tek bir Koşul seçildiğinde etkinleşir.

Tablodaki tüm bilgilerde arama yapmak için kullanılır.

Tabloda bulunan tüm bilgilerde düzenli ifade (RegExp) ile arama yapmak için kullanılır. Sütun bazlı arama ya da kullanım filtresi etkinken bu buton gizlenir.

Tabloda bulunan bilgilerde sütun bazlı arama yapmak için kullanılır.

Usage Filter ​

Koşulların hangi vService'lere bağlı olduğunu filtrelemek için kullanılır; seçilen vService'te kullanılan Koşullar listelenir, hiçbir vService'te kullanılmayanlar için Unused Entries seçeneği bulunur. Filtre etkinken arama kutusunun yerini seçici alır; simgeye yeniden tıklandığında arama kutusu geri döner.

Page Information ​

Tanımlı toplam Koşul sayısı ile listede görüntülenen Koşul sayısına ait bilgiler yer alır: Showing N-M of T records ve seçili Koşul sayısı (N selected, seçim yokken Nothing selected). Filtre şeridinde seçim yapılmışsa aynı satıra uygulanan filtre sayısı ile gösterilen/toplam satır bilgisi eklenir.

Page Size ​

Sayfada görüntülenecek maksimum Koşul sayısı seçilir. Varsayılan 100; seçenekler 5, 10, 20, 50, 100, 200, 500 ve All.

Sağ Tık Menüsü ​

Bir satıra sağ tıklandığında iki işlemli bir menü açılır; menüde başlık satırı bulunmaz. Menü açık kaldığı sürece sağ tıklanan satır vurgulu görüntülenir; sağ tıklama listedeki seçimi değiştirmez ve önizleme panelini açmaz. İki işlem de yalnızca sağ tıklanan Koşula uygulanır ve her satırda etkindir.

İşlemNe yapar
EditKoşulun düzenleme formunu Edit sekmesinde açar; araç çubuğundaki Edit butonunun açtığı formun aynısıdır. Koşulun düzenleme sekmesi zaten açıksa yeni sekme açılmaz, açık sekmeye geçilir.
DeleteSağ tıklanan Koşulu siler; silmeden önce "Are you sure that you want to delete conditions object?" onayı istenir. Listede başka Koşullar seçili olsa da yalnızca bu Koşul silinir. Kullanımdaki bir Koşulun silinmesi engellenmez; araç çubuğundaki Delete maddesinin uyarısı burada da geçerlidir.

Seçilen Koşulun Önizlemesi ​

Listede bir satıra tıklandığında ekranın sağında Koşulun önizlemesi açılır; seçili satıra yeniden tıklandığında panel kapanır. Başlıkta koşul simgesi, Koşulun adı (ad verilmemişse kısa ifadesi, ör. ↓IP = 10.10.10.0/24) ve Condition alt başlığı, sağ üstte ise tek bir işlem bulunur.

Seçilen Koşulun ÖnizlemesiSeçilen Koşulun Önizlemesi

İşlemNe yapar
EditKoşulun düzenleme formunu Edit sekmesinde açar.

Panelde üç sekme bulunur; sonuncusu yalnızca Koşul bir yerde kullanılıyorsa görüntülenir:

Details

Koşulun ayarlarını satır satır listeler (aşağıdaki tablo).

Log

Koşul üzerindeki kullanıcı işlemlerini (ekleme, düzenleme, silme) zaman çizelgesi olarak listeler.

Used in

Koşulun kullanıldığı vService'leri ve Aksiyonları listeler. Sekme adının yanındaki rozet kullanım sayısını gösterir; Koşul hiçbir yerde kullanılmıyorsa sekme hiç görüntülenmez.

Details sekmesindeki satırlar sırasıyla aşağıdaki gibidir:

SatırAçıklamaGörünme koşulu
NameKoşula verilen ad.Ad girilmişse
Condition DescriptionKoşulun okunabilir ifadesi (ör. IF Source (client) IP address is 10.10.10.0/24).Her zaman
CriteriaKriterin adı; içerik tabanlı kriterlerde ve Source IP'de yanında eşleşme ya da kaynak biçimi bulunur (ör. Source IP — Manual).Her zaman
Kritere özel satırlarKriterin değerleri (ör. Header Name, Query, Source IP, Destination IP, Browser Name, WAF Attack Signatures).Seçilen kritere göre
Condition LevelKoşulun değerlendirildiği seviye.Değer tanımlıysa (manuel ve özel liste koşulları)
Condition ProtocolKoşulun protokolü.Değer tanımlıysa (manuel ve özel liste koşulları)

"Used in" sekmesi mutlaka kontrol edilmelidir ​

Used in alanı, ilgili Koşulun hangi vService'ler veya Aksiyonlar üzerinde aktif olarak kullanıldığını gösterir. Bu bilgi, Koşul üzerinde yapılacak bir değişikliğin hangi servisleri etkileyeceğinin hızlı ve doğru şekilde analiz edilmesini sağlar. Özellikle canlı ortamlarda, Koşul ayarlarında yapılacak güncellemeler öncesinde olası servis etkilerinin değerlendirilmesi açısından kritik öneme sahiptir.

Sık Karşılaşılan Sorunlar ve Çözümleri ​

Koşullar ile çalışırken karşılaşılan bazı yaygın sorunlar ve çözüm önerileri aşağıda yer almaktadır.

WARNING

Problem 1: Koşul Eşleşmiyor ​

Belirti:

  • Koşul doğru gibi görünüyor ama Aksiyon tetiklenmiyor.
  • Bazı isteklerde çalışıyor, bazılarında çalışmıyor.

Kontrol Listesi:

✅ Case-sensitivity

  • Default case-sensitive → /Admin ≠ /admin
  • Çözüm: Case-insensitive seçeneğini aktif et.

✅ Operatör doğru mu?

  • EXACT MATCH: Tam eşleşme | START: Başlar | END: Biter | INCLUDES: İçerir | REGEX: Pattern
  • Çözüm: Doğru operatörü seç, test et.

✅ Smart Variable değeri beklenenden farklı

  • Çözüm: Debug log'larda değeri kontrol et | [Host] port içerebilir: example.com:443

✅ AND/OR mantığı yanlış

  • AND: Tümü sağlanmalı | OR: En az biri sağlanmalı
  • Çözüm: Mantığı doğrula | Test case'leri yap.

WARNING

Problem 2: Beklenmeyen Davranış ​

Belirti:

  • Koşul farklı şekilde eşleşiyor.
  • İstenen sonuç elde edilemiyor.

Kontrol Listesi:

✅ Koşul tipi doğru seçilmiş mi?

  • Path ≠ Path+Query | Header ≠ Cookie | URL ≠ Path
  • Çözüm: Koşul dökümanını oku.

✅ Smart Variable formatı doğru mu?

  • Çözüm: Köşeli parantez kullan: [İstemci IP adresi] | Büyük/küçük harf eşleşmeli.

✅ CIDR/IP listesi doğru mu?

  • Çözüm: CIDR formatı: 192.168.1.0/24

TIP

Debug İpuçları: Adım Adım Troubleshooting ​

1. Debug Mode Aktif Et

  • vService → Details → Debug Mode = Enabled
  • Debug Mode loglarında detaylı bilgi görünür.

2. Logları İncele

  • Monitor Mode → İlgili vService → Logs & Tracking → HTTP/TCP Logs

3. Koşulu Basitleştir

  • Tüm AND/OR koşullarını kaldır → Sadece tek koşul test et → Hangi koşul problem çıkarıyor bul.

4. Test Client ile Kontrollü Test

  • curl/Postman ile spesifik istek gönder → Header/cookie manuel ekle → Koşul eşleşmesini doğrula.

5. "Used in" Kontrolü

  • Koşulun hangi Aksiyon/vService'lerde kullanıldığını kontrol et → Yanlış yerde kullanılmış olabilir.