Mobil cihazları ayrı bir backend'e gönderebilir miyim?
Kısa cevap
Evet, HTTP vService'te. En kısa yol, Conditional Backend Services bloğunda ürünle gelen hazır If the client is mobile condition'ını seçmektir; ayrıca condition tanımlamak gerekmez. Platform ayrımı gerekiyorsa Mobile Platform, işletim sistemine göre ayrım için Operating System, özel bir desen için User-Agent başlığına bakan HTTP Header condition'ı tanımlanır. Kullanıcıyı mobil siteye göndermek için Location Redirection action'ı kullanılır. Bütün mobil tespitler User-Agent başlığına dayanır.
Sorun: Mobil Kullanıcılar Farklı Bir Uygulamaya Gitmeli
Mobil cihazlar için ayrı optimize edilmiş bir uygulama ya da API sürümü çalıştırılıyorsa mobil isteklerin bu sunuculara, masaüstü isteklerinin ise mevcut sunuculara gitmesi gerekir.
Çözüm: Üç Yöntem
Yöntem 1 ve Yöntem 2 isteği farklı Kurum Servislerine gönderir; Yöntem 3 sunucu seçmez, istemciyi başka bir adrese yönlendirir.
| Durumunuz | Uygun yöntem |
|---|---|
| Bütün mobil cihazları ayırmak yeterli | Yöntem 1: Hazır condition: If the client is mobile |
| Belirli platformları (ör. yalnızca Android), işletim sistemlerini ya da kendi User-Agent desenimi kullanmak istiyorum | Yöntem 2: Mobile platform / Operating system / HTTP header condition'ı |
Kullanıcıyı mobil siteye (ör. m.example.com) göndermek istiyorum | Yöntem 3: Location redirection |
Yöntem 1: Hazır Condition: If the client is mobile Önerilen
- Nasıl çalışır Ürünle gelen bu condition
User-Agentbaşlığını bilinen mobil imzalarla karşılaştırır; NOT hâli If the client is NOT mobile da seçim listesindedir. - Nerede açılır vService formu → + Conditional backend services → Select Conditions
- Gereksinim Hedef sunucuların Kurum Servisi olarak tanımlı olması
- vService tipi HTTP
Adım adım yapılandırma
Mobil sunucular TR7'de henüz Kurum Servisi olarak tanımlı değilse önce eklenir; tanımlıysa bu adım atlanır. Load Balancer → Backend Services → Add ile her sunucu için Backend Service Name ve Address girilir ve bir Health Check profili seçilir. Ayrıntı: Kurum Servisi nasıl eklenir; hangi bilgiler zorunludur?
Load Balancer → Load Balancer vService List adımları izlenir ve HTTP vService açılır.
Default Backend Services tablosundaki + Conditional backend services butonuna tıklanır (Conditional Backend Services).
Bloğun Select Conditions alanında If the client is mobile seçilir; Kurum Servisi seçicisinde mobil Kurum Servisleri seçilir. Hazır condition'lar Conditions listesinde görünmez ve düzenlenmez.
Save butonuna tıklanır.
Doğrulama
Left Monitor Panel → Load Balancer vServices → vService → Logs & Tracking → HTTP Logs ekranında isteğin Device Type değeri ile isteği yanıtlayan Kurum Servisi karşılaştırılır (HTTP Loglarını Görüntüleme). Kayıt için vService'te LOG alanı açık olmalıdır.
Mobil istek → mobil Kurum Servisi · masaüstü istek → Default Backend ServicesMobil bir User-Agent ile istek gönderilir.
curl -s -A "Mozilla/5.0 (Linux; Android 13; Pixel 7) Mobile" http://203.0.113.10/Yanıt mobil Kurum Servisinden gelirYöntem 2: Mobile Platform / Operating System / HTTP Header Condition'ı
- Nasıl çalışır
User-Agentbaşlığından tespit edilen platform, işletim sistemi ya da özel bir desen bir condition'la tanımlanır ve koşullu bloğa bağlanır. - Nerede açılırLoad Balancer → Conditions · 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
Load Balancer → Conditions → Add adımları izlenir; form Conditions · Nasıl eklenir? bölümünde anlatılır.
Condition Name girilir ve Criteria ihtiyaca göre seçilir:
| Criteria | Doldurulan alan | Örnek |
|---|---|---|
| Mobile Platform | Mobile Platform listesinden bir ya da daha fazla platform; seçilenlerden biri eşleşirse condition sağlanır | Android |
| Operating System | Operating System listesinden işletim sistemleri | iOS |
| HTTP Header | Header Name = Request · User-Agent, eşleştirme Includes, Case insensitive işaretli, Query | Mobile |
Add butonuna tıklanır.
Yöntem 1'in 2–5. adımları uygulanır; 4. adımda hazır condition yerine bu condition seçilir.
Doğrulama
Yöntem 1'deki gibi HTTP Logs ekranında isteğin Operating System ya da Device Type değeri ile isteği yanıtlayan Kurum Servisi karşılaştırılır.
Seçilen platformdan gelen istek → bloğun Kurum ServisiYöntem 3: Location Redirection
- Nasıl çalışır Condition'a uyan istek mobil siteye (ör.
https://m.example.com) 3xx ile yönlendirilir; bu bir sunucu seçimi değildir, istemci yeni adrese yeniden istek gönderir. Ayrıntı: Belirli bir URL'yi başka bir URL'ye 301/302 ile nasıl yönlendiririm? - Nerede açılırLoad Balancer → Actions · vService formu → Details → Actions
- Gereksinim Bir condition (Location redirection condition'sız kaydedilirse hiç çalışmaz); hazır If the client is mobile condition'ı da seçilebilir
- 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 mobil sitenin adresi girilir, Redirect Code alanında yönlendirme kodu (ör. 302) seçilir ve Conditions alanında If the client is mobile ya da Yöntem 2'de oluşturulan condition 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
Mobil bir User-Agent ile istek gönderilip yanıt başlıklarına bakılır.
curl -sI -A "Mozilla/5.0 (Linux; Android 13; Pixel 7) Mobile" http://203.0.113.10/HTTP/1.1 302 · Location: https://m.example.comSık Yapılan Hatalar
- Mobil tespiti güvenlik kararı için kullanmak.
User-Agentistemci tarafından değiştirilebilir; erişim kısıtı için kullanılmaz. - Masaüstü görünümü isteyen mobil tarayıcıları unutmak. Tarayıcı masaüstü
User-Agent'ı gönderdiğinde istek mobil sayılmaz ve Default Backend Services'e gider. - Mobil siteye yönlendirmede döngü oluşturmak. Mobil site aynı vService'ten yayınlanıyorsa Location redirection'ın condition'ına mobil sitenin Host'u NOT hâliyle eklenir; aksi hâlde yönlendirilen istek tekrar yönlendirilir.
- Mobile platform condition'ını L7 TCP vService'te aramak. Mobil condition'lar yalnızca HTTP vService'te seçilebilir.
Dokümantasyonda nasıl yapılır
İlgili sorular
