Ters Proxy Nedir ve Nasıl Çalışır?
Yayınlanan: 2022-08-09
Ters proxy'ler, herhangi bir sistem yöneticisinin araç setinde bulunan kullanışlı bir araçtır. Yük dengeleme, DDOS saldırılarından korunma gibi birçok kullanımları vardır.
Ters Proxy Nedir?
Forward Proxy olarak adlandırılan normal bir proxy, bir kullanıcının bağlantısının yönlendirildiği bir sunucudur. Birçok yönden, internet bağlantınızın önüne oturan basit bir VPN gibidir. VPN'ler bunlara yaygın bir örnektir, ancak belirli içeriğe erişimi engelleyebilecek okul güvenlik duvarları gibi şeyler de içerirler.
Ters proxy biraz farklı çalışır. Sistem yöneticileri tarafından kullanılan bir arka uç aracıdır. İçerik sunan bir web sitesine doğrudan bağlanmak yerine, NGINX gibi bir ters proxy ortada oturabilir. Bir kullanıcıdan bir istek aldığında, bu isteği son sunucuya iletir veya "vekil" gönderir. Bu sunucuya "başlangıç sunucusu" denir, çünkü isteklere gerçekte yanıt verecek olan budur.
Bir kullanıcı muhtemelen bir VPN veya güvenlik duvarı gibi bir ileri proxy üzerinden yönlendirilip yönlendirilmediğini bilecek olsa da, ters proxy'ler arka uç araçlarıdır. Kullanıcının bildiği kadarıyla, sadece bir web sitesine bağlanıyorlar. Ters proxy'nin arkasındaki her şey gizlidir ve bunun da sayısız faydası vardır.
Bu etki aynı zamanda tersine de olur. Origin sunucusunun kullanıcıyla doğrudan bir bağlantısı yoktur ve yalnızca ters proxy'nin IP'sinden gelen bir grup istek görür. Bu bir sorun olabilir, ancak NGINX gibi çoğu proxy hizmeti, isteğe X-Forwarded-For
gibi başlıklar ekler. Bu başlıklar, istemcinin gerçek IP adresinin asıl sunucusunu bilgilendirecektir.
Ters Proxy'ler Ne İçin Kullanılır?
Ters proxy'ler konsept olarak oldukça basittir ancak birçok beklenmedik kullanım durumuyla şaşırtıcı derecede faydalı bir araç olduklarını kanıtlamaktadır.
Yük dengeleme
Ters proxy'nin ana faydalarından biri, ne kadar hafif olabileceğidir. Sadece istekleri ilettikleri için, özellikle bir veritabanının sorgulanması gereken durumlarda, bir ton işlem yapmak zorunda kalmazlar.
Bu, darboğazın genellikle kaynak sunucu olduğu anlamına gelir, ancak önünde bir ters proxy ile birden çok kaynak sunucunuz olabilir. Örneğin, proxy, web sitesinin kapasitesini iki katına çıkararak isteklerin %50'sini bir sunucuya ve %50'sini diğerine gönderebilir. HAProxy gibi hizmetler bunu iyi idare etmek için tasarlanmıştır.
Bu çok yaygın bir kullanım durumudur ve Amazon Web Services (AWS) gibi çoğu bulut sağlayıcısı, bir hizmet olarak yük dengeleme sunacak ve sizi kendiniz ayarlama zahmetinden kurtaracaktır. Bulut otomasyonuyla, "otomatik ölçeklendirme" adı verilen bir özellik olan trafiğe yanıt olarak kaynak sunucuların sayısını otomatik olarak ölçeklendirebilirsiniz.
AWS'nin Elastic Load Balancer'ı gibi yük dengeleyiciler, kaynak sunucularınız yükselip alçaldığında kendilerini otomatik olarak yeniden yapılandıracak şekilde ayarlanabilir ve bunların tümü, kaputun altındaki bir ters proxy ile mümkün olur.
İLGİLİ: AWS'nin Elastik Yük Dengeleyicilerine Nasıl Başlanır?

Önbelleğe almak
Ters proxy, yanıt vermede kaynak sunucudan çok daha hızlı olduğundan, ortak rotalardaki istekleri hızlandırmak için yaygın olarak önbelleğe alma adı verilen bir teknik kullanılır. Önbelleğe alma, sayfa verilerinin ters proxy'de depolanması ve kaynak sunucudan yalnızca birkaç saniyede/dakikada bir talep edilmesidir. Bu, kaynak sunucu üzerindeki yükü önemli ölçüde azaltır.
Örneğin, şu anda okuduğunuz bu makale, makale içeriğini ve meta verilerini almak için bir SQL veritabanıyla konuşması gereken WordPress tarafından sunuldu. Sayfanın gerçekten değişmediği göz önüne alındığında, her sayfa yenileme için bunu yapmak israftır. Böylece, bu rota önbelleğe alınabilir ve ters proxy, WordPress'i tekrar rahatsız etmek yerine son yanıtı bir sonraki kullanıcıya geri gönderir.
İçeriğinizi önbelleğe alan özel bir ters proxy ağına İçerik Dağıtım Ağı veya CDN denir. CloudFlare veya Fastly gibi CDN'ler, küresel teslimatı hızlandırmak için büyük web siteleri tarafından çok yaygın olarak kullanılır. İçeriği önbelleğe alan dünya çapındaki sunuculara "uç düğümler" denir ve bunların birçoğuna sahip olmak web sitenizi çok hızlı hale getirebilir.
Ağ Koruması ve Gizlilik
Kullanıcı, ters proxy'nin arkasında ne olduğunu bilmediğinden, doğrudan Origin sunucularınıza kolayca saldıramaz. Aslında, ters proxy'ler, özel alt ağlardaki kaynak sunucularla yaygın olarak kullanılır, yani dış internete hiç gelen bağlantıları yoktur.
Bu, ağ yapılandırmanızı gizli tutar ve belirsizlik yoluyla güvenlik hiçbir zaman kusursuz olmasa da, onu saldırıya açık bırakmaktan daha iyidir.
Bu doğal güven, ağınızı planlarken de faydalı olabilir. Örneğin, bir veritabanıyla konuşan bir API sunucusu, bir ters proxy'ye benzer. Veritabanı, özel alt ağdaki API sunucusuna güvenebileceğini bilir ve API sunucusu, veritabanı için yalnızca doğru bağlantılara izin vererek güvenlik duvarı görevi görür.
Yapılandırılabilir Ön Uç
NGINX gibi ters proxy'lerin faydalarından biri, ne kadar yüksek düzeyde yapılandırılabilir olduklarıdır. Çoğu zaman, yalnızca kullanıcıların bu hizmetlere nasıl erişeceğini yapılandırmak için diğer hizmetlerin önünde olması yararlıdır.
Örneğin, NGINX, belirli yollara yönelik sınırlı istekleri derecelendirebilir; bu, kötüye kullananların tek bir IP'den kaynak sunuculara binlerce istekte bulunmasını önleyebilir. Bu, DDOS saldırılarını durdurmaz, ancak olması iyidir.
NGINX ayrıca yapılandırılabilir "sunucu" bloklarıyla birden çok alan adından gelen trafiği iletebilir. Örneğin, orijin sunucunuza example.com
istek gönderebilir, ancak api.example.com
özel API sunucunuza veya files.example.com
dosya depolama alanınıza vb. gönderebilir. Her sunucunun kendi yapılandırması ve kuralları olabilir.
NGINX ayrıca, merkezi HTTPS sertifikaları ve başlık yapılandırması gibi mevcut kaynak sunucuların üzerine ekstra özellikler ekleyebilir.
Bazen NGINX'in başka bir yerel hizmetle aynı makinede olması, yalnızca o hizmetten içerik sunmak için yararlıdır. Örneğin, ASP.NET web API'leri, isteklere yanıt vermede iyi olan, ancak başka bir şey olmayan Kestrel adlı dahili bir web sunucusu kullanır. Kestrel'i özel bir bağlantı noktasında çalıştırmak ve NGINX'i yapılandırılabilir bir ters proxy olarak kullanmak çok yaygındır.
Merkezi Günlük Kaydı
Bu oldukça basittir, ancak trafiğinizin çoğunun tek bir hizmetten geçmesi, günlükleri kontrol etmeyi kolaylaştırır. NGINX'in erişim günlüğü, trafiğiniz hakkında birçok yararlı bilgi içerir ve Google Analytics gibi bir hizmetin özelliklerini geçmese de, sahip olunması gereken harika bir bilgidir.
İLGİLİ: İşletmeniz için Elasticsearch Analytics ve İzleme Paneli Nasıl Kurulur