Rhel9’a HaProxy Nasıl Kurulur?
Bu kılavuzda, HAProxy’nin Apache HTTP Sunucusu ile RHEL 9 üzerinde adım adım nasıl kurulacağını ve yapılandırılacağını göstereceğiz.
HAProxy , Yüksek Kullanılabilirlik Proxy’si anlamına gelir. Web uygulamaları için açık kaynaklı ve yüksek performanslı bir TCP/HTTP yük dengeleyici ve ters proxy’dir. Bir uygulamanın isteklerle dolup taşmasını önlemek için trafiği belirli bir algoritma kullanarak birden çok arka uç web sunucusuna dağıtarak çalışır.
Yazılım yığınlarında HAProxy kullanan en iyi web siteleri arasında Twitter, Reddit, Tumblr ve Stack Overflow bulunur.
Laboratuvar Kurulumu
HAProxy’nin yük dengeleyici olarak nasıl çalıştığını göstermek için bir HAProxy yük dengeleyici ve iki web sunucusuyla üç düğümlü bir kurulumumuz var.
- haproxy-rhel-09 10.128.0.48
- apache-web-1 10.128.0.49
- apache-web-2 10.128.0.50
Adım 1) Tüm düğümlerde hosts dosyasını güncelleyin
İlk adım, tüm düğümlerdeki ana bilgisayar dosyasını ana bilgisayar adları ve IP adresleri ile güncellemektir. Bu nedenle, gösterildiği gibi tüm sistemlerde hosts dosyasına erişin.
$ sudo vi /etc/hosts
Daha sonra aşağıdaki gibi güncelleyin:
10.128.0.48 haproxy-rhel-09 10.128.0.49 apache-web-1 10.128.0.50 apache-web-2
Değişiklikleri kaydedin ve çıkın.
Adım 2) HAProxy’yi RHEL 9’a yükleyin
Ardından, yük dengeleyici görevi görecek olan RHEL 9 sunucusuna HAProxy paketini kuracağız. Bu nedenle, sunucunuza giriş yapın ve önce paketleri yükseltin.
$ sudo dnf update -y
Ardından, gösterildiği gibi RHEL 9 depolarında HAProxy paketinin kullanılabilirliğini ve bununla ilgili daha fazla bilgiyi arayabilirsiniz.
$ sudo dnf info haproxy -y
Çıktıdan, HAProxy hakkında sürüm, yayın ve mimari de dahil olmak üzere, sadece birkaçını belirtmek için bir bilgi telaşı görebilirsiniz,
Paketi depolardan yüklemek için şu komutu çalıştırın:
$ sudo dnf install haproxy
Sadece HAProxy’nin kurulu olduğunu onaylamak için komutu çalıştırın.
$ rpm -qi haproxy
Adım 3) HAProxy’yi Yük Dengeleyici Olarak Çalışacak Şekilde Yapılandırın
Sonraki adım HAProxy’yi yapılandırmaktır. Ancak bunu yapmadan önce, herhangi bir ihtimale karşı yapılandırma dosyasının yedek bir kopyasını alın. Aşağıdaki cp komutunu kullanarak ,
$ sudo cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.bak
Ardından, yapılandırma dosyasını açın
$ sudo vi /etc/haproxy/haproxy.cfg
İki bölümü güncelleyeceğiz: ön uç ve arka uç bölümü.
Frontend bölümünde aşağıdaki öznitelikleri tanımlayacağız.
- HAProxy yük dengeleyicinin IP adresi ve dinleyeceği bağlantı noktası.
- İstatistik URI’si
Backend bölümü için aşağıdaki öznitelikleri tanımlayacağız.
- Yük dengeleme algoritması.
- Tarayıcıdaki yük dengeleyici istatistiklerine erişmek için kullanıcı adı ve parola.
- Web sunucularının ana bilgisayar adları ve IP adresleri.
frontend load_balancer bind 10.128.0.48:80 option http-server-close option forwardfor stats uri /haproxy?stats default_backend webservers backend webservers mode http balance roundrobin stats enable stats auth linuxtechi:Techi@1234 option httpchk HEAD / HTTP/1.1\r\nHost:\ localhost server apache-web-1 10.128.0.49:80 server apache-web-2 10.128.0.50:80
Adım 4) Rsyslog’u Yapılandırın
Sonraki adım, HAProxy istatistiklerini günlüğe kaydedebilmesi için Rsyslog hizmetini yapılandırmaktır. Bunu yapmak için Rsyslog yapılandırma dosyasına erişin.
$ sudo vi /etc/rsyslog.conf
Bu satırların yorumunu kaldır
module(load="imudp") input(type="imudp" port="514")
Değişiklikleri kaydedin ve yapılandırma dosyasından çıkın.
Ardından, bir HAProxy yapılandırma dosyası oluşturun.
$ sudo vi /etc/rsyslog.d/haproxy.conf
Ardından, günlük dosyalarının konumunu tanımlamak için aşağıdaki satırları yapıştırın.
local2.=info /var/log/haproxy-access.log local2.notice /var/log/haproxy-info.log
Değişiklikleri kaydedin ve yapılandırma dosyasından çıkın. Ardından, aşağıdaki SELinux kuralını ayarlayın.
$ sudo setsebool -P haproxy_connect_any 1
Değişiklikleri etkilemek için yeniden başlatın ve Rsyslog’u etkinleştirin.
$ sudo systemctl restart rsyslog $ sudo systemctl enable rsyslog
Ardından HaProxy’yi başlatın ve yeniden başlatmanın ardından çalışması için etkinleştirin.
$ sudo systemctl start haproxy $ sudo systemctl enable haproxy
HAProxy’nin çalıştığından emin olmak için şu komutu çalıştırın:
$ sudo systemctl status haproxy
Yapılandırılmış bir güvenlik duvarınız varsa, 80 numaralı bağlantı noktasına izin verdiğinizden emin olun.
$ sudo firewall-cmd --add-port=80/tcp --permanent $ sudo firewall-cmd --reload
Adım 5) Web Sunucularını Kurun
Şimdiye kadar, HAProxy sunucusunu bir yük dengeleyici görevi görecek ve iş yükünü web sunucuları arasında yuvarlak deneme algoritmasını kullanarak dağıtacak şekilde yapılandırdık. Bir sonraki adım, web sunucularını kurmaktır.
Ardından, Apache paketini sunucuların her birine kurun.
$ sudo dnf install httpd -y
Ardından, Apache hizmetini başlatın ve etkinleştirin.
$ sudo systemctl start httpd $ sudo systemctl enable httpd
Bir sonraki adım, web sunucularını yapılandırmak ve onları bir tarayıcıdan ayırt etmek için farklı index.html dosyaları oluşturmaktır.
Web Sunucusu 1 için
Kök kullanıcıya geçin ve örnek bir HTML dosyası oluşturun.
$ echo "<h1>Success! Welcome to Web Server 1</h1>" > /var/www/html/index.html
Ardından, Apache hizmetini yeniden başlatın.
$ sudo systemctl restart httpd
Web Sunucusu 2 için
Benzer şekilde, kök kullanıcıya geçin ve örnek bir HTML dosyası oluşturun.
$ echo "<h1>Success! Welcome to Web Server 2</h1>" > /var/www/html/index.html
Ardından, değişiklikleri gerçekleştirmek için Apache hizmetini yeniden başlatın.
$ sudo systemctl restart httpd
Adım 6) HAProxy Yük Dengelemeyi Test Edin
Son adım, yük dengeleyicinin çalışıp çalışmadığını test etmektir. Bunu yapmak için yük dengeleyicinin IP adresini ziyaret edin
http://loadbalancer-IP
İlk olarak, web sunucusunun HTML sayfalarından birine yönlendirileceksiniz. Bu durumda isteğin ilk web sunucusuna gönderildiğini görebilirsiniz.
Şimdi web sayfasını yeniden yükleyin ve bu sefer ikinci web sunucusunun HTML sayfasını görmelisiniz.
Bu, isteklerin arka uç web sunucuları arasında dağıtılmasında döngüsel deneme algoritmasının uygulandığını doğrular.
Alternatif olarak, Round Robin algoritmasını test etmek için curl komutunu birden çok kez çalıştırabilirsiniz.
Bravo! Bu aynı zamanda, iki düğüm arasında trafiği dağıttığı için haproxy’nin düzgün çalıştığını doğrular.
Aşağıdaki URL’ye göz atarak da istatistikleri görüntüleyebilirsiniz.
http://loadbalancer-IP/haproxy?stats
Sizden kullanıcı adı ve şifre isteyecek, haproxy’yi yapılandırırken tanımladığımız aynı kimlik bilgilerini kullanın.