Reverse Proxy
- Türkçe karşılığı
- ters proxy
- Okunuşu
- rivörs proksi
Günlük kullanımda çoğunlukla İngilizcesi tercih edilir.
Kısaca
Reverse proxy, web sunucularının önünde durup istemci isteklerini onlar adına kabul eden ve her isteği doğru arka uç sunucuya ileten bir sunucudur.
Reverse proxy nedir?
Reverse proxy, internet ile uygulama sunucularınız arasına yerleştirilen bir sunucudur. İstemciler reverse proxy'ye sanki web sitesinin kendisiymiş gibi bağlanır; proxy her isteği bir arka uç sunucuya iletir, yanıtı bekler ve istemciye geri verir. İstemci genellikle arka uç sunucuları hiç görmez ve onlara doğrudan bağlanmaz.
Her istek üzerinden geçtiği için reverse proxy, ortak işler için elverişli bir yerdir: arka uçların özel ağda düz HTTP kullanabilmesi için HTTPS'i sonlandırmak, yanıtları önbelleğe almak ve sıkıştırmak, istekleri alan adına ya da URL yoluna göre farklı servislere yönlendirmek, yük dengelemek ve iç sunucuları doğrudan saldırılardan korumak. Yaygın reverse proxy'ler arasında NGINX, Apache HTTP Server, HAProxy, Caddy, Traefik ve Envoy bulunur; Kubernetes ingress controller ise tüm bir küme için reverse proxy'dir.
Bir şirket danışmasını düşünün: ziyaretçiler yalnızca danışma ile konuşur, danışma her talebi doğru departmana iletir ve yanıtı geri getirir; böylece ziyaretçilerin hangi ofisin ilgilendiğini bilmesi gerekmez. Ters (reverse) sözcüğü, bunu istemciler adına çalışan forward proxy'den ayırır: forward proxy kullanıcıların önünde durur, örneğin bir okul ya da şirket ağında, ve internete onlar adına istek yapar.
Reverse proxy sıklıkla yük dengeleyici ya da API gateway ile karıştırılır. Yük dengeleme, yani istekleri birkaç özdeş sunucuya dağıtmak, reverse proxy'nin yapabileceği işlerden biridir; API gateway ise kimlik doğrulama, hız sınırlama ve istek dönüştürme gibi özellikler ekleyen, API'lere özel bir reverse proxy'dir. CDN de dünyanın birçok yerine yayılmış bir tür reverse proxy'dir.
Bir bakışta
Önemli noktalar
- Reverse proxy, arka uç sunucular adına istek alır ve onlara iletir.
- Genellikle HTTPS sonlandırma, önbellekleme, sıkıştırma ve yönlendirmeyi üstlenir.
- Arka uç sunucular özel bir ağda gizli kalabilir.
- Forward proxy istemciler adına, reverse proxy sunucular adına hareket eder.
- Yük dengeleyiciler, API gateway'ler ve CDN'ler çoğu zaman reverse proxy olarak çalışır.
Örnek
# Terminate HTTPS here and forward plain HTTP to local backends
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/ssl/example.com.pem;
ssl_certificate_key /etc/ssl/example.com.key;
location /api/ {
proxy_pass http://127.0.0.1:4000; # API service
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location / {
proxy_pass http://127.0.0.1:3000; # frontend app
}
}Sık sorulan sorular
Forward proxy ile reverse proxy arasındaki fark nedir?
Forward proxy istemcilerin önünde durur ve internete onlar adına istek yapar; örneğin bir şirket ağında trafiği filtrelemek ya da önbelleğe almak için. Reverse proxy ise sunucuların önünde durur ve internetten gelen istekleri onlar adına alır.
Reverse proxy ile yük dengeleyici aynı şey midir?
Tam olarak değil. Reverse proxy istekleri arka uç sunuculara iletir ve önbellekleme ile TLS sonlandırma gibi özellikler ekleyebilir; yük dengeleme ise isteklerin birkaç sunucuya dağıtılması işidir. Birçok reverse proxy aynı zamanda yük dengeler, bu yüzden aynı yazılım çoğu zaman her iki rolü de üstlenir.
Bir Node.js uygulamasının önüne neden reverse proxy koyulur?
Reverse proxy; HTTPS sertifikalarını, sıkıştırmayı, statik dosyaları ve yavaş istemcileri çoğu uygulama sunucusundan daha verimli yönetebilir. Ayrıca tek bir genel port arkasında bir sunucuda birkaç uygulama çalıştırmanıza da olanak tanır.
Sık karşılaştırılanlar
- Ters Proxy vs Yük DengeleyiciTers proxy, istekleri arkasındaki sunuculara iletir ve TLS, önbellek, güvenlik ekler; yük dengeleyici ise yükü dağıtır, hiçbir sunucu aşırı yüklenmez.
- Proxy vs Reverse ProxyForward proxy istemcilerin önünde durur ve isteklerini internete iletir; reverse proxy ise sunucuların önünde durur ve gelen istekleri onlar adına karşılar.
İlgili sayfalar
- Yük DengeleyiciDevOps ve Bulut, s. 54Yük dengeleyici, gelen trafiği birkaç arka uç sunucuya dağıtan bir sunucu ya da hizmettir; hiçbir sunucu aşırı yüklenmez ve uygulama erişilebilir kalır.
- API GatewayBackend ve API'ler, s. 3API gateway, bir grup backend servisinin önünde duran ve API isteklerini alan, kontrol eden ve yönlendiren tek giriş noktası görevi gören bir sunucudur.
- CDNDevOps ve Bulut, s. 7CDN, dünyanın dört bir yanına yayılmış ve web sitesi içeriğinin kopyalarını saklayıp her kullanıcıya en yakın konumdan sunan bir sunucu ağıdır.
- TLSGüvenlik, s. 44TLS, ağda gönderilen veriyi şifreleyen ve sunucunun kimliğini doğrulayan, HTTPS, e-posta ve birçok başka bağlantıyı güvenceye alan kriptografik protokoldür.
- ÖnbellekBackend ve API'ler, s. 34Önbellek, sık kullanılan verilerin kopyalarını tutan hızlı ve geçici bir depolama katmanıdır; sonraki istekler yavaş işi tekrarlamadan hızla karşılanır.
- NginxBackend ve API'ler, s. 30Nginx, uygulama sunucularının önünde ters proxy, yük dengeleyici ve HTTP önbelleği olarak da çok kullanılan, hızlı ve açık kaynaklı bir web sunucusudur.
- Proxy SunucusuAğlar, s. 23Proxy sunucusu, istemciler ya da sunucular adına ağ isteklerini alıp ileten aracı bir sunucudur; denetim, önbellekleme veya gizlilik sağlar.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin