İstemcinin işletim sistemine göre farklı içerik gösterebilir ya da farklı Kurum Servisine yönlendirebilir miyim (Operating System)?
Kısa cevap
Evet, HTTP vService'te. Operating System koşulu istemcinin işletim sistemini User-Agent başlığından tespit eder; listeden bir ya da daha fazla işletim sistemi seçilir ve seçilenlerden biri eşleşirse koşul sağlanır. Eşleşme birebirdir: Windows seçimi Windows Phone'u, iOS seçimi KaiOS'u kapsamaz. Koşul bir Conditional Backend Services bloğuna bağlanırsa istek farklı Kurum Servislerine gider; Location Redirection action'ına bağlanırsa istemci başka bir adrese (ör. platforma özel indirme sayfası) yönlendirilir; Show Content action'ına bağlanırsa TR7'de tanımlı bir içerik sayfası gösterilir. İşletim sistemi tanınan ve tanınmayan istemcileri ayırmak için hazır If the client operating system is recognized koşulu kullanılır.
Temel Bilgi
Tarayıcılar ve uygulamalar her istekte User-Agent başlığında kendilerini ve çalıştıkları platformu tanıtır (ör. Mozilla/5.0 (Windows NT 10.0; Win64; x64) …). İşletim sistemi bu metindeki imzalardan çıkarılır. Başlığın değeri istemcinin beyanıdır; istemci tarafından değiştirilebilir.
Sorun: Platformlar Farklı İçerik ya da Uygulama Bekliyor
Bir indirme sayfasının her platforma kendi kurulum paketini sunması, yalnızca belirli işletim sistemleri için hazırlanmış bir uygulama sürümünün ayrı sunucularda çalışması ya da desteklenmeyen platformlara bilgilendirme sayfası gösterilmesi istenebilir. Kurum Servisi tarafında User-Agent ayrıştırmak yerine ayrım TR7'de, isteğin işletim sistemine bakan bir koşulla yapılır.
Çözüm: Üç Yöntem
Üç yöntem aynı Operating System koşulunu kullanır; fark, eşleşen isteğin nereye gittiğidir.
| Durumunuz | Uygun yöntem |
|---|---|
| Belirli işletim sistemlerinden gelen istekler ayrı sunuculara gitmeli; adres değişmemeli | Yöntem 1: Conditional Backend Services |
| Belirli işletim sistemlerindeki kullanıcılar başka bir adrese (ör. mağaza ya da indirme sayfası) gönderilmeli | Yöntem 2: Location Redirection |
| Kurum Servisine gitmeden TR7'nin kendi sayfası gösterilmeli (ör. desteklenmeyen platform uyarısı) | Yöntem 3: Show Content |
Yöntem 1: Conditional Backend Services Önerilen
- Nasıl çalışır Operating System koşulu bir Conditional Backend Services (Content Switching) bloğuna bağlanır; seçilen işletim sistemlerinden gelen istekler bloğun Kurum Servislerine, diğerleri Default Backend Services'e gider.
- Nerede açılırLoad Balancer → Conditions → Operating System · vService formu → + Conditional backend services
- Gereksinim Hedef sunucuların Kurum Servisi olarak tanımlı olması
- vService tipi HTTP
Adım adım yapılandırma
Hedef sunucular TR7'de henüz Kurum Servisi olarak tanımlı değilse Load Balancer → Backend Services → Add ile tanımlanır; tanımlıysa bu adım atlanır (Kurum Servisi nasıl eklenir; hangi bilgiler zorunludur?).
Load Balancer → Conditions → Add ile koşul formu açılır (nasıl eklenir).
Condition Name girilir (ör. os-windows), Criteria = Operating System seçilir. Operating System alanı boş açılır; aranabilir listeden en az bir işletim sistemi seçilir. Birden fazla seçim or mantığıyla çalışır. Benzer adlı değerler ayrıdır: hem Windows hem Windows Phone hedefleniyorsa ikisi de seçilir.
Add butonuna tıklanır.
Load Balancer → Load Balancer vService List adımları izlenir ve HTTP vService Edit ile açılır.
Default Backend Services tablosundaki + Conditional backend services butonuna tıklanır.
Bloğun Select Conditions alanında 3. adımdaki koşul, Kurum Servisi seçicisinde bu istemcilerin gideceği Kurum Servisleri seçilir.
Save butonuna tıklanır.
Doğrulama
vService'in Logs & Tracking → HTTP Logs ekranında Operating System filtresinden işletim sistemi seçilir ve kayıtların Backend Service değerine bakılır. Kayıt için vService'te LOG alanı açık olmalıdır.
Seçilen işletim sisteminden gelen istekler → bloğun Kurum ServisiWindows User-Agent'ı ile istek gönderilir.
curl -s -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" http://203.0.113.10/Yanıt bloğun Kurum Servisinden gelirYöntem 2: Location Redirection
- Nasıl çalışır Koşula uyan istek, Redirect Location alanındaki adrese 3xx ile yönlendirilir; istemci yeni adrese yeniden istek gönderir. Bu bir sunucu seçimi değildir.
- Nerede açılırLoad Balancer → Actions · vService formu → Details → Actions
- Gereksinim Yöntem 1'in 2–4. adımlarında oluşturulan Operating System koşulu; Location Redirection koşulsuz kaydedilirse hiç çalışmaz
- vService tipi HTTP
Adım adım yapılandırma
Load Balancer → Actions → Add adımları izlenir.
Action Type = Location Redirection seçilir; Redirect Location alanına hedef adres girilir (ör. https://www.example.com/indir/windows), Redirect Code alanında yönlendirme kodu (ör. 302) seçilir ve Conditions alanında Operating System koşulu seçilir.
Add butonuna tıklanır.
Load Balancer → Load Balancer vService List adımları izlenip vService açılır ve formun üstündeki Details butonuna tıklanır.
Actions alanında oluşturulan action seçilir.
Save butonuna tıklanır.
Doğrulama
Windows User-Agent'ı ile istek gönderilip yanıt başlıklarına bakılır.
curl -sI -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" http://203.0.113.10/HTTP/1.1 302 · Location: https://www.example.com/indir/windowsYöntem 3: Show Content
- Nasıl çalışır Koşula uyan isteğe Kurum Servisine gidilmeden Content Pages profilindeki sayfa, seçilen durum koduyla gösterilir.
- Nerede açılırLoad Balancer → Actions · vService formu → Details → Actions
- Gereksinim Gösterilecek sayfanın bir Content Pages profili olarak tanımlı olması; Yöntem 1'in 2–4. adımlarında oluşturulan Operating System koşulu
- vService tipi HTTP
Adım adım yapılandırma
Load Balancer → Actions → Add adımları izlenir.
Action Type = Show Content seçilir; Content Page alanında gösterilecek sayfa (yoksa açılır listedeki Add ile yeni bir sayfa oluşturulur), Status Code alanında durum kodu (varsayılan 200) seçilir ve Conditions alanında Operating System koşulu seçilir.
Add butonuna tıklanır.
Load Balancer → Load Balancer vService List adımları izlenip vService açılır ve formun üstündeki Details butonuna tıklanır.
Actions alanında oluşturulan action seçilir.
Save butonuna tıklanır.
Doğrulama
Hedeflenen işletim sisteminin User-Agent'ı ile istek gönderilir.
curl -si -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" http://203.0.113.10/Seçilen durum kodu ve Content Pages profilindeki sayfaSık Yapılan Hatalar
- İşletim sistemi tespitini güvenlik kararı için kullanmak.
User-Agentistemcinin beyanıdır ve değiştirilebilir; erişim kısıtı tek başına bu koşula dayandırılmaz. - Benzer adların birbirini kapsadığını sanmak. Eşleşme birebirdir: Windows seçimi Windows Phone trafiğini, iOS seçimi KaiOS trafiğini kapsamaz.
- Tanınmayan istemcileri unutmak.
User-Agentgöndermeyen ya da bilinmeyen bir imzayla gelen istek hiçbir işletim sistemiyle eşleşmez ve Default Backend Services'e gider. Bu istemcileri ayırmak için hazır If the client operating system is NOT recognized koşulu seçilir. - Mobil ayrımını işletim sistemiyle yapmak. Yalnızca "mobil mi" ayrımı gerekiyorsa hazır If the client is mobile koşulu ya da Mobile Platform koşulu daha uygundur (Mobil cihazları ayrı bir backend'e gönderebilir miyim?).
- Koşulu L7 TCP vService'te aramak. Operating System koşulu yalnızca HTTP vService'te kullanılır.
- Yönlendirme döngüsü oluşturmak. Hedef adres aynı vService'ten yayınlanıyorsa Location Redirection'ın koşuluna hedef yolun olumsuz hâli and ile eklenir; aksi hâlde yönlendirilen istek yeniden yönlendirilir.
Dokümantasyonda nasıl yapılır
