Cloud Server’da L7 Load Balancing Konfigürasyonu Nasıl Yapılır?

Layer 7 (Uygulama Katmanı) Load Balancing, gelen HTTP/HTTPS isteklerini içerik türüne, URL’ye, hostname’e veya HTTP header’larına göre yönlendirme imkânı sunar. Bu yöntem, modern Cloud Server altyapılarında, mikro servis mimarisi, çoklu uygulama barındırma ve ölçeklenebilir web sistemleri için vazgeçilmezdir.

Bu yazıda, L7 Load Balancing kavramını ve bir Cloud Server ortamında nasıl konfigüre edileceğini teknik detaylarıyla ele alıyoruz.


1. L7 Load Balancing Nedir?

OSI modelinin 7. katmanı olan uygulama katmanında çalışan L7 load balancer, aşağıdaki karar mekanizmalarına göre trafiği yönlendirebilir:

  • URL path (örn: /api/*)
  • Hostname (örn: api.example.com)
  • Header veya cookie bilgisi
  • HTTP metotları (GET, POST, vb.)
  • İçerik türü veya User-Agent

Bu yetenekler, farklı uygulamaları aynı IP veya port üzerinden ayırmanıza ve akıllı yönlendirme yapmanıza olanak tanır.


2. Hangi Araçlar Kullanılır?

Cloud Server üzerinde L7 load balancing için yaygın olarak kullanılan çözümler:

  • HAProxy (yüksek performans, açık kaynak)
  • NGINX (reverse proxy + L7 yönlendirme)
  • Traefik (mikro servis ortamları için modern çözüm)
  • Envoy Proxy (cloud-native ve service mesh uyumlu)

Bu rehberde, NGINX ve HAProxy ile örnek yapılandırma sunulacaktır.


3. NGINX ile L7 Load Balancing Örneği

a) Temel Konfigürasyon:

http {
upstream backend_api {
server 192.168.1.10;
server 192.168.1.11;
}

upstream backend_web {
server 192.168.1.12;
server 192.168.1.13;
}

server {
listen 80;

location /api/ {
proxy_pass http://backend_api;
}

location / {
proxy_pass http://backend_web;
}
}
}

Açıklamalar:

  • /api/ ile başlayan istekler API sunucularına yönlendirilir.
  • Diğer tüm istekler web uygulamasına gider.
  • Aynı IP üzerinden farklı uygulamalar verimli biçimde dağıtılır.

4. HAProxy ile L7 Load Balancing Örneği

Konfigürasyon:

frontend http_in
bind *:80
acl is_api path_beg /api
use_backend api_servers if is_api
default_backend web_servers

backend api_servers
balance roundrobin
server api1 192.168.1.10:80 check
server api2 192.168.1.11:80 check

backend web_servers
balance roundrobin
server web1 192.168.1.12:80 check
server web2 192.168.1.13:80 check

Açıklamalar:

  • acl tanımı ile Layer 7 seviyesinde /api kontrolü yapılır.
  • Round-robin algoritmasıyla yük iki sunucuya eşit dağıtılır.

5. SSL Termination ve HTTPS Yönlendirme

L7 load balancing yapılarına HTTPS desteği eklemek için:

  • NGINX üzerinde listen 443 ssl tanımı yapılır.
  • Sertifikalar Let’s Encrypt veya özel CA ile kurulabilir.
  • HAProxy için bind *:443 ssl crt /etc/haproxy/certs/ yapılandırması gerekir.

Örnek HTTPS yönlendirme (NGINX):

server {
listen 443 ssl;
ssl_certificate /etc/ssl/cert.pem;
ssl_certificate_key /etc/ssl/key.pem;

location /api/ {
proxy_pass http://backend_api;
}
}

6. Cloud Server Üzerinde Optimize Edilmiş Yapı

  • Cloud sunucu kaynaklarını korumak için keepalive, gzip, cache ve HTTP/2 etkinleştirilmelidir.
  • Trafik istatistikleri için Grafana + Prometheus entegrasyonu yapılabilir.
  • DNS tabanlı yük dağıtımı için Cloudflare gibi CDN servisleri kullanılabilir.

7. Sık Karşılaşılan Senaryolar

SenaryoL7 Load Balancer Davranışı
Tek IP, çok uygulamaHostname veya path’e göre yönlendirme
API ve Web ayrı sunucudaURL filtreleme ile farklı backend’e yönlendirme
Dinamik içerik + statik siteCDN + L7 yapı ile trafik dengelenir
Mikro servis altyapısıTraefik ile container bazlı L7 proxy yönetimi

Sonuç

L7 Load Balancing, yalnızca trafik yönlendirmekle kalmaz; aynı zamanda servisleri daha modüler, ölçeklenebilir ve izlenebilir hale getirir. Özellikle birden fazla uygulamanın barındırıldığı Cloud Server ortamlarında, doğru konfigürasyonlarla sistem performansı ve güvenliği artırılabilir.

Vps.com.tr