İçeriğe geç
HAProxy

HAProxy; 2001’den bu yana geliştirilen, yüksek erişilebilirlik (High Availability) odaklı L4/L7 yük dengeleyicidir. Linux ve FreeBSD üzerinde çekirdek seviyesi optimizasyonlarla saniyede yüz binlerce isteği tek node’da işleyebilir. GitHub, Twitter, Tumblr, Stack Overflow gibi servislerin trafik dağıtımının arkasındaki sessiz devdir.

ACL (Access Control List) motoru, gelişmiş health check sistemi (HTTP, TCP, MySQL, PostgreSQL, Redis), stick-table’lar (rate limiting + session persistence) ve runtime API’si HAProxy’yi kurumsal yük dengeleme için olgun ve güçlü kılar. Nginx ile karşılaştırıldığında daha sade ve yük dengelemeye odaklı bir araçtır.

Mono’nun yaklaşımı

Mono kurulumlarında HAProxy genelde trafik girişinin ilk katmanı olarak konumlanır. Standartlarımız:

  • HA pattern: Keepalived + VRRP ile aktif-pasif çift; veya Anycast + ECMP ile aktif-aktif (BGP destekli ortamlarda).
  • TLS: TLS 1.3 + ECDHE + AEAD; OCSP stapling açık; sertifikalar runtime API ile reload’siz güncellenir.
  • Health check: Sade option httpchk yerine expect ile gerçek 200 kontrolü; uygulama health endpoint’i (/health/ready ile bağımlılık kontrolü).
  • Logging: JSON structured log → Syslog → Loki; HTTP request ID propagation ile uçtan uca tracing.
  • Stick-table: Rate limit, brute-force koruması, IP reputation tracking.
  • Stats: stats socket Unix soketi → Data Plane API → Mono operasyon ekibi yönetir.

Tipik kurulum

Kurumsal trafik girişi:

  1. Cloudflare/Akamai (CDN + DDoS koruma).
  2. HAProxy aktif-pasif çifti (keepalived ile VIP’i yönetir).
  3. HAProxy backend pool’ları → uygulama sunucuları (sticky cookie ile session affinity).
  4. Health check ile sağlıksız node’lar otomatik dışlanır; recovery’de yavaş yavaş trafik alır (slowstart).

PostgreSQL/MariaDB cluster önünde HAProxy + custom healthcheck (örn. Patroni REST endpoint’i) ile otomatik primary keşfi çok yaygın bir Mono pattern’idir.

Yaygın sorunlar ve çözümler

  • Connection refused / file descriptor limit: Sysctl ve ulimit ayarlanmadan high-concurrency çalışmaz. nofile 1048576.
  • TIME_WAIT birikimi: tcp_tw_reuse=1 (Linux 4.12+); HAProxy tarafında option http-server-close.
  • Yavaş failover: VRRP advert interval düşürülebilir (default 1s, agresif kurulumlarda 200ms); preempt politikası açık.
  • Session loss yeni deploy’da: Stick-table peer’ları yapılandırılmalı (peers direktifi).
  • Backend tüm sağlıksız: Maintenance state’i için disabled keyword + Data Plane API.

İlgili hizmetlerimiz

Sıkça sorulan sorular

HAProxy mi Nginx mi yük dengeleyici olarak?
Saf L4/L7 yük dengeleyici işi için HAProxy öne çıkar: ACL motoru zengin, slow-start desteği, advanced health check’ler. Static content + reverse proxy + LB kombinasyonu için Nginx daha pratiktir. Çoğu Mono kurulumunda iki katman: HAProxy (L4) → Nginx (L7).
HAProxy Community mi Enterprise mi?
Community sürüm zaten production-grade. Enterprise (HAProxy Tech) dynamic config API (Data Plane API), WAF, bot management ve enterprise destek için anlamlı. Mono müşterilerimizde %90 Community + Data Plane API.
Stickiness'i nasıl sağlarız?
Üç seçenek: source IP hash (en basit, NAT’lı kullanıcılarda dağılım sorunu), cookie-based (uygulama veya HAProxy oluşturur), stick-table + URL/header. Mono varsayılanı: cookie-based; stateless servislerde stickiness gerekmez.
TLS terminasyonu HAProxy'de mi yapılmalı?
Evet — modern HAProxy bunu çok verimli yapar. TLS 1.3 + OCSP stapling + session resumption native destekli. Sertifika yönetimi için Data Plane API üzerinden ACME entegrasyonu ya da harici cert-manager.

Bir sonraki dönüşümü birlikte planlayalım.

Ekibimiz teknik gereksinimlerinizi anlamak ve hızlıca prototip çıkarmak için hazır.

Bir sonraki dönüşümü birlikte planlayalım.

Ekibimiz teknik gereksinimlerinizi anlamak ve hızlıca prototip çıkarmak için hazır.