Doküman

HAProxy’yi Ubuntu 20.04’e kurma ve yapılandırma

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.