Vekil Sunucu (Proxy) Nedir ve Nasıl Çalışır?
Proxy, istemci ile hedef sunucu arasında aracılık eden sunucudur. Düz proxy ile ters proxy arasındaki farkı, çalışma mantığını ve kullanımı öğrenin.
Proxy (vekil sunucu) nedir?
Proxy ya da Türkçe adıyla vekil sunucu, bir istemci ile ulaşmak istediği sunucu arasına giren ve istekleri onun adına ileten aracı bir sunucudur. İstemci doğrudan hedefe bağlanmak yerine önce proxy'ye bağlanır; proxy isteği hedefe iletir, yanıtı alır ve istemciye geri verir.
Araya girmenin amacı, bu geçiş noktasında bir şeyler yapabilmektir: isteği denetlemek, yanıtı önbelleğe almak, tarafların kimliğini gizlemek, trafiği yönlendirmek ya da güvenlik kuralları uygulamak. Proxy'nin kimin tarafında durduğuna göre başlıca türler ayrılır: düz (forward) proxy ve ters (reverse) proxy.
Düz proxy ile ters proxy arasındaki fark nedir?
Düz proxy istemcinin tarafında durur. Bir kurumdaki çalışanlar internete çıkarken ortak bir proxy'den geçer. Kurum bu sayede hangi sitelere erişilebileceğini sınırlayabilir, çıkış trafiğini kayda alabilir ve sık istenen içeriği önbelleğe alarak bant genişliğinden tasarruf edebilir. Hedef sunucu çoğu zaman istemciyi değil proxy'yi görür.
Ters proxy ise sunucunun tarafında durur. Dışarıdan gelen istekleri karşılar ve arkadaki uygulama sunucularından uygun olana iletir. İstemci arkada kaç sunucu olduğunu ya da hangisinin yanıt verdiğini bilmez; yalnızca tek bir adresle konuşur. Web sitelerine gelen trafiğin önünde çalışan Nginx ve HAProxy gibi yazılımlar bu rolün tipik örnekleridir.
Kısacası düz proxy istemcileri korur ve yönetir, ters proxy sunucuları korur ve düzenler.
Ters proxy neler yapar?
Ters proxy, modern web mimarilerinin çoğunda bulunan bir bileşendir ve birçok görevi tek noktada toplar:
- Yük dengeleme: Gelen istekleri birden çok uygulama sunucusuna dağıtır, sağlıksız olanları devre dışı bırakır.
- TLS sonlandırma: Şifreli bağlantıyı kendisi çözer; arkadaki uygulamalar sertifika yönetimiyle uğraşmaz.
- Önbellekleme: Sık istenen yanıtları saklayıp uygulamaya hiç gitmeden sunar.
- Yönlendirme: Adresin yoluna ya da alan adına bakarak isteği ilgili servise gönderir. Örneğin yönetim arayüzü ile uygulama arayüzü farklı sunuculardan çıkabilir.
- Koruma: Hız sınırlama, erişim kısıtlaması ve temel saldırı filtreleri uygular.
Bu özelliklerin tamamı uygulama koduna dokunmadan, altyapı katmanında çözülür. Bu da hem geliştiricinin işini hem de operasyonu kolaylaştırır.
Basit bir örnekle akış
Bir e-ticaret sitesinde kullanıcı alışveriş sayfasını açtığında isteği, sitenin ters proxy'sine gider. Ters proxy, sayfanın statik görsellerini kendi önbelleğinden verir. Ürün listesi isteğini arkadaki uygulama sunucularından o an en az yüklü olana iletir. Ödeme isteğini ise ayrı bir ödeme servisine yönlendirir. Sunuculardan biri bakıma alınsa bile ters proxy trafiği diğerlerine kaydırır ve kullanıcı kesinti fark etmez.
Bu örnekte tek dış adres vardır; arkadaki karmaşa kullanıcıdan saklanmıştır. Aynı yapı, yeni bir servis eklenmesini ya da eski bir servisin kademeli olarak devreden çıkarılmasını da kolaylaştırır.
Proxy türleri ve sık karıştırılan kavramlar
Proxy ile VPN çoğu zaman karıştırılır. Proxy genellikle belirli bir uygulamanın ya da protokolün trafiğini aracıdan geçirir; VPN ise cihazın tüm ağ trafiğini şifreli bir tünele alır. Proxy tek başına trafiği şifrelemeyebilir.
Ağ geçidi (gateway) ve yük dengeleyici de benzer işlerin parçalarıdır. API ağ geçidi, ters proxy'nin API'ler için özelleşmiş halidir: kimlik doğrulama, kullanım sınırı ve sürümleme gibi API'ye özgü işleri üstlenir. Yük dengeleyici ise odağı yalnızca trafik dağıtımı olan bileşendir; Nginx gibi yazılımlar ters proxy ve yük dengeleyici rolünü birlikte yürütebilir.
Çok katmanlı sistemlerde bu bileşenler üst üste durabilir: önde bir CDN, ardından ters proxy, sonra uygulama sunucuları.
Proxy Mindset programlarında nerede çalışılır?
Nginx ile Ters Proxy ve Yük Dengeleme eğitiminde Ters Proxy ve Upstream Yönetimi, Önbellekleme ve İçerik Optimizasyonu, TLS Sonlandırma ve Güvenlik modülleri bulunur. Yük Dengeleme ve Ters Proxy (Nginx, HAProxy) eğitiminde ise Ters Proxy Temelleri ve Nginx Yapılandırması, Yük Dengeleme ve Sağlık Kontrolleri ile Önbellek, Performans ve İşletim modülleri yer alır.
İlgili Mindset programı
Nginx ile Ters Proxy ve Yük Dengeleme
Sık sorulan sorular
Proxy kullanmak anonimlik sağlar mı?
Kısmen. Düz proxy, hedef sunucunun görmesi gereken adresi proxy'ninkiyle değiştirebilir; ancak proxy sahibi trafiği görebilir ve sunucular başka yollarla da kullanıcıyı ayırt edebilir. Güvenilmeyen ücretsiz proxy'ler ek risk taşır. Anonimlik ve gizlilik için tek başına proxy yeterli bir çözüm sayılmamalıdır.
Ters proxy ile yük dengeleyici aynı şey midir?
Aynı değildir ama çoğu zaman aynı yazılım bu rolleri birlikte yürütür. Yük dengeleyici isteği birden çok sunucu arasında dağıtmaya odaklanır. Ters proxy ise bunun yanında önbellekleme, TLS sonlandırma, yol bazlı yönlendirme ve güvenlik filtreleri gibi ek işler yapar.
Ters proxy arkasındaki sunucu gerçek istemci adresini nasıl görür?
Ters proxy istekleri kendi adresiyle ilettiği için uygulama varsayılan olarak proxy'nin adresini görür. Proxy, gerçek istemci adresini özel bir istek başlığına yazar ve uygulama bu başlığı güvenilir proxy'lerden geldiğinde okur. Başlığın dışarıdan taklit edilememesi için yapılandırma dikkatli yapılmalıdır.
Proxy performansı artırır mı yoksa yavaşlatır mı?
Etkisi çift yönlü olabilir. Önbellekleme, bağlantıları yeniden kullanma ve sıkıştırma yanıt süresini kısaltır. Öte yandan araya bir sıçrama daha eklendiği için kötü yapılandırılmış ya da yetersiz kapasiteli bir proxy darboğaza dönüşebilir. Bu nedenle ölçüm ve izleme proxy kurulumunun parçasıdır.
İlgili rehberler
İlgili eğitimler
Kategori: DevOps ve Bulut Teknolojileri