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
Senaryo | L7 Load Balancer Davranışı |
---|---|
Tek IP, çok uygulama | Hostname veya path’e göre yönlendirme |
API ve Web ayrı sunucuda | URL filtreleme ile farklı backend’e yönlendirme |
Dinamik içerik + statik site | CDN + 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.