HAProxy(High Availability Proxy) Yüksek Kullanılabilirlikli Proxy anlamına gelmektedir. HAProxy yüksek erişilebilirliğe sahip yük dengeleyicileri ile TCP ve HTTP tabanlı uygulamalar için Proxy sunucusu hizmeti veren, Linux, Solaris ve FreeBSD üzerinde çalıştırılabilen açık kaynak kodlu bir yazılımdır. HAProxy 2000 yılında linux’ un geliştiricisi de olan Willy Tarreau tarafından C dilinde geliştirilmiştir. Hızlı ve verimli olması ile de ünlüdür. Github Speedtest.net, Tumblr ve Twitter gibi yüksek trafiğe sahip web siteleri tarafından da kullanılmaktadır.
En yaygın kullanımı, işi birden fazla sunucuya dağıtarak sunucu ortamının performansını ve güvenilirliğini arttırmaktır.
HAProxy şunları yapmaya imkan tanımaktadır:
- TCP Proxy: Bir port üzerinden TCP bağlantısını kabul edebilir, sunucuya bağlanabilir ve porları birbirine bağlayarak trafiğin iki yönde de akmasına izin verebilir.
- HTTP Reverse Proxy: İstemci ana sunucuya direkt istek yapmaz. İsteği Proxy sunucu yapar ve alınan yanıtı istemciye geri dönderir. Kısaca aracılık yapmaktadır.
- SSL Terminator/ Initiator/ Offloader: İstemciden gelen bağlantıda, sunucudan giden bağlantıda ya da her iki bağlantıda da SSL/TLS kullanılabilir.
- HTTP Normalizer: http trafiği yapılandırılmak için işlendiğinde yalnızca seçilen istekler iletilir. Örneğin belli bir header değerindeki istekler iletilir.
- Load Balancer: TCP, modunda, tüm bağlantılar için yük dengeleme kararlarını alır.
- Traffic Regulator: Farklı durumlarda bazı hız sınırlamaları uygulayabilir. Sunucuları aşırı yüklemeye karşı koruyabilir. İçeriğe göre trafik önceliklerini ayarlayabilir. Paketleri işleyerek alt katmanlara ya da dış ağ bileşenlerine aktarabilir.
HAProxy Nasıl Çalışır
Veri iletme hedefi göz önüne alarak tasarlandığından, mimarisi mümkün olan en az işlemle verileri mümkün olduğunca hızlı bir şekilde taşımak için optimize edilmiştir. Bypass mekanizması sunan katmanlı bir yapı sunmaktadır, bu sayede gerekmedikçe verilerin daha yüksek seviyelere ulaşmaması sağlanmış olur. İşlemlerin çoğu çekirdekte gerçekleştirilmektedir,.
Tek bir işlem birden fazla Proxy örneğini çalıştırabilmektedir. Tek bir işlemde 300.00 proxy yapılandırmasının sorunsuz çalıştığı test edilmiştir. Bu nedenle, tüm örnekler için birden fazla işlem başlatmaya gerek yoktur.
HAProxy başladıktan sonra 3 şey yapmaktadır:
- Gelen bağlantıları işlemek,
- Sunucuların durumlarını düzenli olarak kontrol etmek,
- Diğer HAProxy düğümleri ile iletişim kurmak.
HAProxy Kurulumu
Ubuntu deposunda tanımlı olduğundan direkt apt ile kurulabilmektedir.
apt install -y haproxy
HAProxy’i etkinleştirebilmek için /etc/default/haproxy dosyasındaki ENABLED değeri 1 ile değiştirilmelidir.
Daha önceden yüklü bir haproxy varsa ve yükseltilmek isteniyorsa:
sudo apt-get install –only-upgrade haproxy
şeklinde yükseltilebilmektedir.