HaProxy ne işe yarar bir sunucunuz veya uygulamanız var, üzerindeki veri akışı oldukça fazla olduğunda, bu gelen verilerin yüklerini dengelemek için kullanılan open source bir görev yöneticisidir. HaProxy gelen yükleri dağıtarak performansı arttırır. Bu şekilde daha güvenli bir ortam sağlar. Örneğin bir Log uygulamanız var, üzerinde işletmenizdeki bütün verileri anlık olarak sürekli ekrana yansıttığı ve sürekli bir akış sağladığı için normalde uygulamanıza çok yük biner, HaProxy ile bu yükü eşit bir şekilde dağıttığımız için bu yük azalır. Linux,macOS ve FreeBSD üzerinde çalışabilen TCP/HTTP proxy çözümüdür. Örnek olarak bir Instagram,Twitter ve Github gibi siteler bu yazılımı kullanmaktadır.
HaProxy Genel Özellikleri
*Yük Dengeleme
*Yüksek Kullanılabilirlik
*Uygulama Hızlandırma
*Yönetim
*Güvenlik
*Mikro Hizmetler
Yük Dengeleme
Yük dengeleme ile gelen yüksek verileri sunuculara eşit olarak dağıtılmasıdır. Bu paylaşım ne işe yarar sunucularınız üzerindeki yük normalden daha az olduğu için etkin ve rahat bir şekilde çalışacaktır. Ayrıca sunucularınızdan herhangi biri veya bir kaçı arıza yaparsa bile, diğer sunucularınız etkin bir şekilde çalışmaya devam edebilir.
Yük dengeleme olayı bir algoritma ile yapılır sunucuların diğer sunuculara göre ne kadar sıklıkla nasıl seçilebileceği ayarlanır. Bu olay kullanıcıya en uygun ip adresine çıkmasını sağlıyor, en az sunucu trafiğinin sağlanabileceği şekilde ayarlanır.
Yüksek Güvenlik
Günlük sayısız şirket ve web sitesi çok fazla DDoS atak gibi çeşitli siber saldırılara maruz kalıyor.
Bu şirketleri HaProxy sayesinde korunabiliyor, çünkü HaProxy bir çok güvenlik katmanı oluşturduğu için kullanıcılarına güven sağlıyor. Bu güvenliği çok katmanlı şekilde yaptığı için kolay aşılabilir halde değildir.
Bu katmanlar şu şekildedir:
Layer 1 – Erişim Kontrol Listeleri(Access Control Lists)
Layer 2 – İstemci Parmak İzi (Client Fingerprinting)
Layer 3 – Gerçek Zamanlı Küme Çapında İzleme (Realtime Cluster-wide Tracking)
Layer 4 -Web Uygulaması Güvenlik Duvarı (Web Application Firewall)
Yüksek Kullanılabilirlik
Sunucunuz aktif çalışırken bir sorun, sıkıntı çıkabilir bunun için yedekleme sistemi ile HaProxy bunun önüne geçer. Örneklendiricek olursak, Sunucu üzerindesiniz bir aktif ve pasif sunucu veya sunucularınız var. Yük dengeleme başarısız olduğu durumlarda istek pasif sunucuyu aktif edip otomatik olarak yedek sunucu üzerinden servera bağlanmasını sağlar.
HaProxy Sizlere Ne Sağlar?
TCP Proxy : TCP Proxy ile bir port üzerinden TCP bağlantısını kabul eder, sunucuya bağlanıp bu soketleri birbirine bağlayan trafiğin iki yönde akmasına izin verebilir,IPv4 ve IPv6 soketlerini de destekler.
HTTP Reverse Proxy: Burada ise kendi görünümünü bir sunucu olarak gösterir.TCP soketi üzerinden gelen istekleri
sunucuya iletir.
SSL terminator/initiator/offloader: Bütün gelen ve giden bağlantılar üzerinde SSL/TLS kullanılabilir.
HTTP Normalizer: HTTP trafiğini yapılandırıp sadece tamamlanmış istekleri yönlendirir.Protokol tabanlı saldırıları engeller.
HTTP Fixing: URL’yi istek veya yanıt başlığını her şekilde değiştirilebilir hale getirir.
Traffic Regulator: Sunucular üzerinde sürekli oluşan trafiği azaltmak için hız sınırlaması uygulayabilirsiniz. Sunucuların rahat çalışmasını sağlamaktadır.
HaProxy Kurulum ?
CentOS depolarında mevcut olan HaProxy kurulumu basittir. CentOS’da linux komutları tabanlı bir işletim sistemidir Red Hat tarafından bağımsız bir grup tarafından kurulmuştur.
Linux sistem kullandığı için kurulum basit bir şekilde olucaktır başlangıç olarak
“yum -y install haproxy” yazarak sistemimize yükleyebiliriz.
Daha sonra hizmeti etkinleştirme ve aktif etmekte gayet kolay :
“system start haproxy”
“system enable haproxy”
Sistemimize kolay bir şekilde kurduk, şimdi sırada yapılandırma işlemlerine geçelim.
Sistemimizde ki haproxy dosyası içinden haproxy.cfg ulaşıp en basit şekilde yapılandırmayı yapalım.
Burada en temel yapılandırmayı ekliyoruz değişmeyen haproxy kısımları
Daha sonrası için kendi server kısmımızı ipleri belirlediğimiz kısmı ekliyoruz daha ve kaydediyoruz.
Daha sonrasında çalıştırdığımız da sade bir arayüz bizi karşılıyor.
Örnek arayüz olarak şöyle bir görsel bırakıyorum.