Pratikte aynı yazılım (Nginx, HAProxy, Traefik) her iki işi de yapabilir. Bu yüzden iki terim sık karıştırılır. Ama kavramsal olarak farklı sorunları çözerler: ters proxy bir aracıdır, yük dengeleyici bir dağıtıcıdır.
Kavramsal Fark
Her yük dengeleyici bir tür ters proxy olabilir, ama her ters proxy yük dengeleyici değildir. Tek bir sunucunun önündeki Nginx, yük dengelemiyor ama ters proxy görevi görüyordur.
Katman 4 ve Katman 7 Ayrımı
Katman 7 dengeleme içeriği okur: "/api" isteklerini şu sunucuya, "/statik" isteklerini buna gönder diyebilir. Katman 4 ise daha hızlıdır ama içerikten habersizdir.
Yük Dağıtım Algoritmaları
IP hash, oturum yapışkanlığı gerektiren uygulamalarda kullanılır: aynı kullanıcı hep aynı sunucuya gider, böylece oturum verisi paylaşılmak zorunda kalmaz.
Tipik Mimari
Gerçek sistemlerde ikisi birlikte çalışır. Katmanlar şöyle dizilir:
| Katman | Bileşen | Görevi |
|---|---|---|
| 1 | DNS / Anycast | Kullanıcıyı en yakın bölgeye yönlendirir |
| 2 | CDN | Statik içeriği edge'den sunar |
| 3 | Load balancer (L4) | Bölge içinde trafiği dağıtır |
| 4 | Reverse proxy (L7) | TLS sonlandırır, yönlendirme kuralları uygular |
| 5 | Uygulama sunucuları | Asıl işi yapar |
Bu mimarinin hiçbir yerinde forward proxy yoktur — çünkü o, zincirin diğer ucunda, kullanıcının tarafındadır. Ayrımı forward ve reverse proxy yazımızda ele aldık.
Sağlık Kontrolü
Yük dengeleyicinin ters proxy'den ayrıldığı en net nokta budur: arkasındaki sunucuların sağlığını sürekli izler ve arızalı olanı havuzdan çıkarır.
Bu mantık, proxy havuzu yönetimindekiyle birebir aynıdır. Havuz yazımızda aynı desenin istemci tarafındaki karşılığını anlattık.
Veri Toplarken Neden Önemli?
Hedef sitenin yük dengeleyicisi, isteklerinizi farklı sunuculara dağıtabilir. Bu, tutarsız sonuçlara yol açabilir:
- Farklı sürümler: Kademeli dağıtım sırasında bazı sunucular yeni sürümü çalıştırıyor olabilir.
- Oturum kaybı: Oturum yapışkanlığı yoksa, çerezleriniz farklı sunucuda tanınmayabilir.
- Değişken yanıt süresi: Sunucular arasında performans farkı olabilir.
- A/B testleri: Farklı istekler farklı varyant görebilir.
Bu tutarsızlıkları azaltmak için sticky oturum kullanmak ve aynı IP'den ardışık istek atmak yardımcı olur.
Özet
Ters proxy istekleri karşılayıp ileten bir aracıdır; yük dengeleyici ise bu istekleri birden çok sunucuya dağıtan ve onların sağlığını izleyen bir bileşendir. Aynı yazılım her iki rolü de üstlenebilir, bu yüzden terimler karışır. Katman 4 dengeleme hızlı ama içerikten habersiz, katman 7 dengeleme ise içerik farkındalıklı ama daha maliyetlidir. Veri toplarken hedefin bu katmanları, tutarsız sonuçların ve oturum kopmalarının gizli nedeni olabilir.