Tek bir public IP'nin arkasında birden fazla web sitesi yayınlayabilir miyim?
Kısa cevap
Evet, iki yolla. Virtual Hosting ile her site ayrı bir HTTP vService olur ve bu vService'ler aynı IP:port'u paylaşır; TR7 isteği alan adına (HTTPS'te SNI, şifresiz trafikte Host Header'ı) göre ilgili vService'e gönderir. Bu yöntemde her sitenin kendi sertifikası, WAF'ı ve profilleri olur. Ya da tek bir vService kullanılır ve Conditional Backend Services (Content Switching) ile Host Header'ına göre her site farklı Kurum Servislerine yönlendirilir; bu yöntemde sertifika, WAF ve profiller bütün siteler için ortaktır. Her iki yöntemde de ortak IP önce Network → Interfaces altında bir arayüze eklenmiş olmalıdır.
Sorun: Tek IP'de Siteler Nasıl Ayırt Edilir?
Public IP adresleri sınırlıdır ve çoğu kurum sitelerini tek bir IP'nin 443 portundan yayınlar. Aynı IP:port'a gelen istekler yalnızca alan adıyla ayırt edilebilir: şifresiz trafikte Host header'ında, HTTPS'te TLS el sıkışmasındaki SNI'de yazar. TR7'nin bu bilgiye göre isteği doğru siteye göndermesi gerekir.
Çözüm: İki Yöntem
| Durumunuz | Uygun yöntem |
|---|---|
| Sitelerin sertifikası, WAF ayarları, profilleri ya da sorumlu ekipleri farklı | Yöntem 1: Virtual Hosting |
| Siteler aynı politikayla yönetilecek, yalnızca farklı sunuculara gidecek | Yöntem 2: Tek vService + Conditional Backend Services (Content Switching) |
Yöntem 1: Virtual Hosting Önerilen
- Nasıl çalışır Ortak IP:port'a gelen istek, Host Header'ına ya da SNI'ye göre ilgili vService'e iletilir; TLS'i o vService kendi sertifikasıyla sonlandırır.
- Nerede açılır vService → Virtual Hosting → alan adı listesi
- Gereksinim Ortak IP'nin bir arayüze eklenmiş olması (Add IP); IP:port'u paylaşan bütün vService'lerde listenin dolu olması; hepsinin aynı şifreleme sınıfında (hepsi HTTPS ya da hepsi şifresiz) olması
- vService tipi Yalnızca HTTP
Adım adım yapılandırma
Load Balancer → Load Balancer vService List adımları izlenir, ilk sitenin HTTP vService'i açılır (ya da Add ile oluşturulur).
Virtual Hosting anahtarı açılır; gelen ilk satıra sitenin alan adı küçük harfle yazılır (ör. a.example.com).
Frontend satırında ortak IP (listede yoksa önce + Add IP ile arayüze eklenir), port 443 ve Encrypted (HTTPS) grubundan bir protokol seçilir; Certificate alanında bu sitenin sertifikası seçilir. vService yeni oluşturuluyorsa sitenin Kurum Servisleri Default Backend Services listesine eklenir.
Save butonuna tıklanır.
Add ile yeni bir HTTP vService oluşturulur. Frontend satırında ilk vService'le aynı IP ve port, aynı şifreleme sınıfında bir protokol seçilir.
Virtual Hosting açılıp b.example.com yazılır; HTTPS'te bu alan adının sertifikası Certificate alanında seçilir; sitenin Kurum Servisleri Default Backend Services listesine eklenir. Sertifika TR7'de yoksa önce Certificates & PKI → SSL/TLS Certificates → Add ile yüklenir (Sertifikamı TR7'ye nasıl yüklerim; hangi formatlar destekleniyor?). Kurum Servisi henüz yoksa seçicideki Backend Service butonuyla formdan çıkmadan ya da Load Balancer → Backend Services → Add ile oluşturulur; Backend Service Name ve Address (adres ve port) girilir (Kurum Servisi nasıl eklenir; hangi bilgiler zorunludur?).
Save butonuna tıklanır. vService listesinde bu vService'lerin Type hücresinde bulut simgesi görünür.
Doğrulama
curl -v --resolve a.example.com:443:203.0.113.10 https://a.example.com/a.example.com'un sertifikası ve sayfası dönerb.example.com ile tekrarlanır; iki sitenin farklı sertifika ve içerik döndürdüğü görülür.Yöntem 2: Tek vService + Conditional Backend Services (Content Switching)
- Nasıl çalışır Tek vService bütün siteleri karşılar; Host Header'ına bakan condition'lar isteği ilgili sitenin Kurum Servislerine gönderir (sektördeki adıyla Content Switching). Kurallar yukarıdan aşağıya değerlendirilir, ilk eşleşen uygulanır.
- Nerede açılırLoad Balancer → Conditions → HTTP Header (Host); vService → Conditional Backend Services (Content Switching)
- Gereksinim Ortak IP'nin bir arayüze eklenmiş olması; HTTPS'te bütün alan adlarını kapsayan sertifika(lar)
- vService tipi HTTP
Adım adım yapılandırma
Load Balancer → Conditions → Add adımları izlenir.
Criteria olarak HTTP Header seçilir. Header Name alanı Host ile dolu gelir; eşleştirme yöntemi olarak Exact Match (varsayılan) seçilir ve değer olarak sitenin alan adı yazılır (ör. a.example.com).
Add butonuna tıklanır. 1–3. adımlar her site için tekrarlanır.
Load Balancer → Load Balancer vService List adımları izlenir ve HTTP vService açılır (ya da Add ile oluşturulur). Frontend satırında ortak IP, port ve protokol, HTTPS'te Certificate alanında bütün alan adlarını kapsayan sertifika(lar) seçilir.
Default Backend Services tablosundaki + Conditional backend services butonuna tıklanır; her kural için 3. adımda kaydedilen condition ve ilgili sitenin Kurum Servisleri seçilir. Kurum Servisi henüz yoksa seçicideki Backend Service butonuyla formdan çıkmadan ya da Load Balancer → Backend Services → Add ile oluşturulur; Backend Service Name ve Address (adres ve port) girilir (Kurum Servisi nasıl eklenir; hangi bilgiler zorunludur?).
Hiçbir koşula uymayan istekler Default Backend Services listesine gider; liste boşsa TR7 503 döner.
Save butonuna tıklanır.
Doğrulama
curl -v --resolve b.example.com:443:203.0.113.10 https://b.example.com/b.example.com'un Kurum Servislerinden yanıtSık Yapılan Hatalar
- Virtual Hosting'de vService'lerden birinin listesini boş bırakmak. Paylaşım için bütün vService'lerde liste dolu olmalıdır; aksi hâlde Port collision uyarısı görünür.
- Şifreli ve şifresiz vService'i aynı IP:port'ta paylaştırmak. HTTPS ve şifresiz satırlar aynı IP:port'u paylaşamaz.
- 80 ve 443 dışındaki portta Exact Match kullanmak. Tarayıcı standart olmayan portu Host Header'ına ekler (
a.example.com:8080); Yöntem 2'de Start ya da Regex eşleştirmesi kullanılır. Yöntem 1'de şifresiz trafik standart dışı bir portta yayınlanıyorsa alan adı Virtual Hosting listesine port ile birlikte yazılır (a.example.com:8080); HTTPS'te eşleştirme port içermeyen SNI ile yapılır, listeye yalnızca alan adı yazılır. - Alan adlarını büyük harfle yazmak. Virtual Hosting eşleşmesi büyük/küçük harfe duyarlıdır; alan adları küçük harfle yazılır.
- Ortak IP'yi arayüze eklemeden vService açmaya çalışmak. Frontend IP listesinde yalnızca arayüzlere eklenmiş IP'ler bulunur; IP önce Network → Interfaces → Add IP ile eklenir.
Dokümantasyonda nasıl yapılır
