Tanım
Reverse proxy (ters vekil sunucu), istemcilerden gelen istekleri karşılayıp arka plandaki bir ya da birden fazla uygulama sunucusuna ileten ve yanıtı istemciye geri döndüren aracı sunucudur. TLS sonlandırma, önbellekleme, sıkıştırma, yük dengeleme ve arka sunucuyu gizleme için kullanılır.
Reverse proxy ile forward proxy farkı nedir?
Forward proxy istemcinin adına çalışır; reverse proxy ise sunucunun adına çalışır. Bir şirketin çalışanlarının internete çıkışını denetleyen proxy bir forward proxy'dir ve dış dünya istemcinin kimliğini değil proxy'yi görür. Reverse proxy'de ise ziyaretçi yalnızca proxy'nin adresini görür; arkadaki Node.js, Python ya da Docker uygulamasının hangi portta çalıştığını bilmez.
- TLS sonlandırma: SSL sertifikası proxy'de tutulur; arka uygulama düz HTTP ile çalışabilir.
- Tek giriş noktası: Aynı sunucudaki birden çok uygulama alan adına ya da yola göre ayrıştırılır.
- Önbellek ve sıkıştırma: Statik yanıtlar proxy'de önbelleğe alınır.
- Güvenlik: Arka sunucu doğrudan internete açılmaz; WAF kuralları proxy'de uygulanabilir.
Reverse proxy nasıl kurulur?
Reverse proxy en yaygın olarak Nginx ile kurulur; Caddy, Traefik ve HAProxy da sık kullanılır. Nginx'te temel yapılandırma, bir server bloğundaki location içinde proxy_pass yönergesiyle istekleri uygulamanın yerel adresine (ör. 127.0.0.1:3000) iletmekten ibarettir.
- Uygulamayı yalnızca yerel adreste dinleyecek şekilde başlatın.
- Nginx'te alan adı için bir
serverbloğu açıpproxy_passile yerel porta yönlendirin. proxy_set_headerileHost,X-Forwarded-ForveX-Forwarded-Protobaşlıklarını iletin; böylece uygulama ziyaretçinin alan adını, gerçek IP adresini ve HTTPS kullanıldığını bilir.- SSL sertifikasını Nginx'e kurup
nginx -tile yapılandırmayı test ettikten sonra yeniden yükleyin.
Adım adım anlatım için Node.js uygulaması yayınlama ve Ubuntu Nginx kurulumu rehberlerine bakabilirsiniz. Reverse proxy'nin birden çok sunucuya dağıtım yapan hâli load balancer, dünya çapında dağıtılmış hâli ise CDN'dir. Kurulum için root erişimli bir VPS sunucu gerekir.