HAproxy, TCP ve HTTP tabanlı programlar için yüksek kullanılabilirlik ve yük dengeleme sunan açık kaynaklı ve hafif bir pakettir. Yükü web ve uygulama sunucuları arasında dağıtır. HAproxy, neredeyse tüm Linux dağıtımları için kullanılabilir. Verimliliği, güvenilirliği ve düşük bellek ve CPU ayak izi ile popüler olan, yaygın olarak kullanılan bir yük dengeleyicidir. Bu yazıda, bir Ubuntu sistemine HAproxy’nin nasıl kurulacağını ve yapılandırılacağını açıklayacağız.
Üç makine kurduk. HAproxy’yi bir sunucuya ve Apache web sunucularını iki sunucuya kuracağız. HAproxy sunucumuz daha sonra bir yük dengeleyici görevi görecek ve yükü Apache web sunucuları arasında dağıtacaktır.
Not: Bu gönderide bahsedilen prosedür ve komutlar Ubuntu 20.04 LTS (Focal Fossa) üzerinde test edilmiştir. Aynı prosedür Debian ve Mint dağıtımları için de geçerlidir.
Ağ Ayrıntıları
Üç Ubuntu sunucusu kullanacağız; hepsi aynı ağda. Sunucularımızın detayları aşağıdaki gibidir:
Hostname: HAproxy, IP address: 192.168.72.157 (Frontend server)
Hostname: web-server1, IP address: 192.168.72.158 (Backend servers)
Hostname: web-server2, IP address: 192.168.72.159 (Backend servers)
Not: Tüm sunucularda sudo ayrıcalıklarına sahip olmanız gerekir.
Bir makineyi yük dengeleyici, diğer ikisini web sunucusu olarak yapılandıracağız. HAproxy sunucusu, kullanıcılardan gelen istekleri alacak ve bunları iki web sunucusuna iletecek olan ön uç sunucumuz olacaktır. Web sunucuları, bu iletilen istekleri alacak olan Arka Uç sunucularımız olacaktır.
Kurulumumuz şu şekilde görünüyor:
Web sunucuları-Arka uç sunucuları kurma
Bu bölümde backend sunucularımız olarak iki adet web sunucusu ( web-server1 ve web-server2 ) kuracağız.
Web sunucusunda1(192.168.72.158)
Web sunucunuzda aşağıdaki adımları gerçekleştirin. Ana bilgisayar adlarını ve IP adreslerini, web sunucularınızın ilgili IP adresleri ve ana bilgisayar adlarıyla değiştirdiğinizden emin olun.
1. Hosts dosyasını yapılandırın
Web sunucusu1’de /etc/hosts dosyasını düzenleyin :
$ sudo nano /etc/hosts
Ardından HAproxy sunucusu için ana bilgisayar adı girişini aşağıdaki gibi ekleyin:
hostname-of-HAproxy IP-address-of-HAproxy
Bizim senaryomuzda şöyle olurdu:
HAproxy 192.168.72.157
2. Apache web sunucusunu kurun
Şimdi Terminal’de aşağıdaki komutu kullanarak Apache web sunucusunu kurun.
$ sudo apt install apache2
Ardından Terminal’de aşağıdaki komutları kullanarak Apache hizmetini etkinleştirin ve başlatın:
$ sudo systemctl enable apache2
$ sudo systemctl start apache2
Terminal’de aşağıdaki komutu kullanarak web sunucusu1 için bir index dosyası oluşturun :
$ echo"<H1>Hello! This is webserver1: 192.168.72.158 </H1>"|sudotee/var/www/html/index.html
Sisteminizde bir güvenlik duvarı çalışıyorsa, bunun üzerinden Apache trafiğine izin vermeniz gerekir:
$ sudo ufw allow 80/tcp
Then reload the firewall configurations:
$ ufw reload
Şimdi web tarayıcınızda http:// yazıp ardından web sunucunuzun IP adresini veya ana bilgisayar adını yazarak siteye erişmeyi deneyin.
http:// hostname-or-IP-address
Web sunucusu-2’de 192.168.72.159)
İkinci web sunucunuzda aşağıdaki adımları gerçekleştirin. Ana bilgisayar adlarını ve IP adreslerini, web sunucularınızın ilgili IP adresleri ve ana bilgisayar adlarıyla değiştirdiğinizden emin olun.
1. Hosts dosyasını yapılandırın
web-server2’de / etc/hosts dosyasını düzenleyin :
$ sudonano/etc/hosts
Ardından HAproxy sunucusu için ana bilgisayar adı girişini aşağıdaki gibi ekleyin
HAproxy 192.168.72.157
2. Apache web sunucusunu kurun
Şimdi Terminal’de aşağıdaki komutu kullanarak Apache web sunucusunu kurun.
$ sudo apt install apache2
Ardından Terminal’de aşağıdaki komutları kullanarak Apache hizmetini etkinleştirin ve başlatın:
$ sudo systemctl enable apache2
$ sudo systemctl start apache2
Terminal’de aşağıdaki komutu kullanarak web sunucusu2 için bir index dosyası oluşturun:
$ echo"<H1>Hello! This is webserver2: 192.168.72.159 </H1>"|sudotee/var/www/html/index.html
Güvenlik duvarında Apache’ye izin ver:
$ sudo ufw allow 80/tcp
ve ardından güvenlik duvarı yapılandırmalarını yeniden yükleyin:
$ ufw reload
Şimdi web tarayıcınızda http:// yazıp ardından IP adresini veya ana bilgisayar adını yazarak siteye erişmeyi deneyin.
HAproxy yük dengeleyici-Ön uç sunucusunu kurma
Bu bölümde web sunucularımız için bir HAproxy yük dengeleyici kuracağız . Bu HAproxy sunucusu bir ön uç sunucu olarak hareket edecek ve istemcilerden gelen istekleri kabul edecektir.
HAproxy sunucusunda ( 192.168.72.157 ), yük dengeleyiciyi kurmak için aşağıdaki adımları gerçekleştirin.
1. Hosts dosyasını yapılandırın
Terminalde aşağıdaki komutu kullanarak /etc/hosts dosyasını düzenleyin :
$ sudonano/etc/hosts
Her iki Apache web sunucusu için kendi ana bilgisayar adıyla birlikte aşağıdaki ana bilgisayar adı girişlerini ekleyin :
192.168.72.157 HAproxy
192.168.72.158 web-server1
192.168.72.159 web-server2
Şimdi /etc/hosts dosyasını kaydedin ve kapatın .
HAproxy yük dengeleyiciyi yükleme
Şimdi bu adımda, HAproxy’yi Ubuntu sunucularımızdan birine (192.168.72.157) kuracağız. Bunu yapmak için, Terminal’de aşağıdaki komutu kullanarak apt listesini güncelleyin:
$ sudo apt-get update
Ardından aşağıdaki komutu kullanarak paketleri güncelleyin:
$ sudo apt-get upgrade
Şimdi Terminal’de aşağıdaki komutu kullanarak HAproxy’yi kurun:
$ sudo apt install haproxy
HAproxy sunucusunun kurulumu bittiğinde, Terminal’de aşağıdaki komutu kullanarak bunu onaylayabilirsiniz:
$ haproxy -v
HAproxy’nin başarıyla yüklendiğini doğrulayan, sisteminizde kurulu olan HAproxy sürümünü size gösterecektir.
HAproxy’yi yük dengeleyici olarak yapılandırma
Aşağıdaki bölümde, HAproxy’yi yük dengeleyici olarak yapılandıracağız. Bunu yapmak için /etc/haproxy/haproxy.cfg dosyasını düzenleyin:
$ sudonano<strong>/etc/haproxy/haproxy.cfg</strong>
IP adreslerini kendi IP adreslerinizle değiştirerek haproxy.cfg dosyasına aşağıdaki satırları ekleyin.
Yukarıdaki yapılandırma satırlarındaki ön uç web ön ucu, HAproxy’ye 192.168.72.157 numaralı bağlantı noktasından gelen istekleri dinlemesini ve ardından bunları arka uç web arka ucu altında yapılandırılmış arka uç sunucularına iletmesini söyler. Konfigürasyon yaparken IP adreslerini web sunucularınızın ilgili IP adresleri ile değiştirin.
HAproxy İzlemeyi Yapılandırma
HAproxy izleme ile sunucu durumu, aktarılan veriler, çalışma süresi, oturum hızı vb. dahil birçok bilgiyi görüntüleyebilirsiniz. HAproxy izlemeyi yapılandırmak için /etc/haproxy/haproxy.cfg adresinde bulunan yapılandırma dosyasına aşağıdaki satırları ekleyin :
listen stats
bind 192.168.72.157:8080
mode http
option forwardfor
option httpclose
stats enable
stats show-legends
stats refresh 5s
stats uri /stats
stats realm Haproxy\ Statistics
stats auth kbuzdar:kbuzdar #Login User and Password for the monitoring
stats admin if TRUE
default_backend web-backend
Yukarıdaki yapılandırma, stats yönergesini kullanarak HAproxy “ stats ” sayfasını etkinleştirir ve stats auth yönergesi tarafından tanımlanan kullanıcı adı ve parolayı kullanarak http temel kimlik doğrulamasıyla güvenliğini sağlar.
Konfigürasyonlarla işiniz bittiğinde, haproxy.cfg dosyasını kaydedin ve kapatın.
Şimdi Terminal’de aşağıdaki komutu kullanarak yapılandırma dosyasını doğrulayın:
$ haproxy -c -f /etc/haproxy/haproxy.cfg
Aşağıdaki çıktı, yapılandırmaların doğru olduğunu gösterir.
Şimdi yapılandırmaları uygulamak için HAproxy hizmetini yeniden başlatın:
$ sudo systemctl restart haproxy.service
HAproxy hizmetinin durumunu kontrol etmek için komut şöyle olacaktır:
$ sudo systemctl status haproxy.service
HAproxy’yi test edin
HAproxy kurulumunu test etmeden önce, web sunucularına bağlantınız olduğundan emin olun. HAproxy sunucunuzdan, her iki web sunucusuna da IP adreslerine veya ana bilgisayar adlarına göre ping komutunu çalıştırın.
$ ping ana bilgisayar adı veya ip adresi
Bir web tarayıcısı kullanarak HA Proxy’yi test edin
Şimdi HAproxy sunucunuzda, herhangi bir web tarayıcısını açın ve http:// ve ardından bizim durumumuzda 192.168.72.157 olan HAproxy sunucusu IP adresini yazın.
http:// 192.168.72.157
HAproxy sunucusu, alternatif olarak, isteği her iki web sunucusuna da sırayla deneme yöntemiyle gönderir. Web sayfasını birkaç kez yeniden yükleyerek bunu test edebilirsiniz.
http://192.168.72.157 adresini ilk kez ziyaret ettiğimizde aldığımız yanıt şu :
Bu, web sayfasını yeniden yüklediğimizde aldığımız yanıt:
HAproxy İzlemeyi Test Etme
HAproxy izleme sayfasına erişmek için http:// ve ardından HAproxy sunucusunun IP adresini/ana bilgisayar adını ve 8080/stats bağlantı noktasını yazın:
http://192.168.72.157:8080/stats
or
http://HAproxy:8080/stats
Aşağıdaki kimlik doğrulama kutusu görünecektir. Yapılandırmalarda daha önce yapılandırdığınız kullanıcı adını ve şifreyi girin ve ardından Tamam’a basın .
HAproxy sunucumuz için istatistik raporu karşınızdadır.
Yazının orijinalini buradan okuyabilirsiniz.
Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım.
Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum.
Son 6 yıldır sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum.
Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.