Sistem Yönetimi
100%

NGINX ile Reverse Proxy ve Yük Dengeleme (Load Balancing)

Web trafiğini yönetmek, performansı artırmak ve sunucu iş yükünü dağıtmak için NGINX reverse proxy ve load balancer yapılandırması.

Genel Bakış

NGINX, yüksek performanslı bir HTTP sunucusu olmasının yanı sıra, modern web mimarilerinde Reverse Proxy (Ters Vekil Sunucu) ve Load Balancer (Yük Dengeleyici) olarak kritik bir rol oynar. İstemci ile arka uç (backend) sunucuları arasında bir köprü görevi görür.

Sorun

Tek bir uygulama sunucusu (örneğin bir Node.js veya Tomcat sunucusu) belirli bir trafik kapasitesine sahiptir. Kullanıcı sayısı arttığında tek sunucu darboğaza (bottleneck) girer, yanıt süreleri uzar ve sistem çöker. Ayrıca, uygulamanın doğrudan internete açık olması güvenlik riskleri yaratır.

Çözüm: Yük Dengeleme Havuzu

NGINX kullanarak gelen HTTP isteklerini birden fazla sunucuya dağıtabilirsiniz. Bu sayede hem yatay ölçekleme (horizontal scaling) yapılır hem de sunuculardan biri çöktüğünde trafik diğerine yönlendirilerek kesinti önlenir.

Temel NGINX Load Balancer Yapılandırması:

upstream backend_sunucular {
server 10.0.0.1:8080;
server 10.0.0.2:8080;
}

server {
listen 80;
location / {
proxy_pass http://backend_sunucular;
}
}

Teknik Detaylar

NGINX varsayılan olarak "Round Robin" (sırayla dağıtım) algoritmasını kullanır. Ancak least_conn (en az bağlantıya sahip sunucuya yönlendir) veya ip_hash (aynı kullanıcının hep aynı sunucuya gitmesini sağlayan oturum kalıcılığı) gibi algoritmalarla optimize edilebilir. Reverse proxy olarak kullanıldığında SSL Sonlandırma (SSL Termination) yaparak arka uç sunucularını şifreleme/çözme yükünden kurtarır ve statik dosyaları (CSS, JS, Görseller) kendi üzerinden servis ederek performansı artırır.

Sonuç

NGINX ile yük dengeleme, yüksek erişilebilirlik (High Availability) gerektiren sistemlerin temel taşıdır. Doğru yapılandırılmış bir reverse proxy, arka uç altyapısını soyutlayarak güvenliği, hızı ve yönetilebilirliği maksimize eder.

İlgili Wiki'ler

Tümünü Gör