Proxy Protocol ayarı nedir, ne zaman açılmalıdır?
Kısa cevap
Kurum Servisindeki Proxy alanı açıldığında (Proxy = Proxy Protocol v1, Proxy v2 = v2) TR7, HTTP ve L7 TCP vService'lerde Kurum Servisine açtığı her bağlantının en başında, uygulama verisinden önce, istemcinin gerçek IP ve port bilgisini gönderir; varsayılan değeri No Proxy'dir. Böylece sunucu bağlantıyı TR7'den almasına rağmen istemcinin adresini bilir. Yalnızca sunucu bu protokolü destekliyor ve bekleyecek şekilde yapılandırılmışsa açılır; aksi hâlde sunucu başlığı uygulama verisi sanar ve bağlantılar bozulur. En çok, istemci IP'sinin HTTP header'ıyla taşınamadığı TCP servislerinde (ör. e-posta) ve X-Forwarded-For'un yetmediği durumlarda kullanılır.
Nasıl Çalışır?
- TR7 Kurum Servisine bağlantıyı açar.
- İlk veri olarak istemcinin IP'sini ve portunu içeren bir başlık gönderir: Proxy (v1) metin, Proxy v2 ikili biçimdedir.
- Sunucu başlığı okur, istemci adresini kaydeder ve bağlantının geri kalanını normal uygulama verisi olarak işler.
| Seçenek | Ne gönderilir |
|---|---|
| No Proxy (varsayılan) | Başlık gönderilmez; sunucu TR7'nin IP'sini görür |
| Proxy | Metin tabanlı Proxy Protocol v1 başlığı |
| Proxy v2 | İkili Proxy Protocol v2 başlığı |
Ne Zaman Açılmalı?
| Durum | Proxy Protocol |
|---|---|
| HTTP vService, sunucu X-Forwarded-For okuyabiliyor | Gerekmez; X-Forwarded-For yeterli |
| L7 TCP ile HTTP olmayan bir servis (SMTP, IMAP, özel TCP) ve istemci IP'si gerekiyor | Sunucu destekliyorsa açılır |
| İstemci IP'si gerekiyor ama TR7 sunucunun dönüş yoluna alınamıyor (Use Client IP kullanılamıyor) | Sunucu destekliyorsa açılır |
| Sunucu Proxy Protocol desteklemiyor | Açılmaz; SNAT → Use Client IP düşünülür |
TR7'de
- Nerede: Load Balancer → Backend Services → Edit → Details anahtarı → Proxy; formun altındaki Edit butonuyla kaydedilir. Backend Group'ta grup düzeyindedir.
- vService tipi: HTTP ve L7 TCP. Network vService'te alan uygulanmaz.
- Sunucu tarafı: Sunucuda Proxy Protocol dinleyici ayarı TR7'deki değişiklikle aynı anda açılır; ayarlar arasında geçen sürede bağlantılar başarısız olur. Sunucunun yalnızca TR7'nin IP'sinden gelen başlığa güvenmesi sağlanır.
- SSL Service ile birlikte: Başlık TLS el sıkışmasından önce gönderilir; sunucunun TLS'li portu da Proxy Protocol beklemelidir.
- Health check: TR7'nin health check'leri Proxy Protocol başlığı göndermez. Başlığı bekleyen porta yapılan HTTP ya da SMTP denetimi reddedilir; TCP türünde denetim kullanılır ya da Use Different IP for Health Check ile ayrı bir sağlık portu denetlenir.
- Cluster: Clustering açıkken ve Manual Sync Mode kapalıyken (varsayılan) ayar eş cihaza otomatik aktarılır.
Sık Karıştırılan Noktalar
- "Proxy Protocol'ü açmak zararsızdır, sunucu anlamazsa yok sayar." Sunucu başlığı uygulama verisi olarak okur ve bağlantı başarısız olur; önce sunucu yapılandırılır.
- "v1 ve v2 aynıdır." Biçimleri farklıdır; sunucunun beklediği sürüm seçilir.
- "Health check de başlığı gönderir." Göndermez; HTTP türündeki denetim Proxy Protocol bekleyen portta sunucuyu down gösterir.
Dokümantasyonda nasıl yapılır
