RHEL/CentOS'ta Web Sunucuları için 'XR' (Crossroads) Yük Dengeleyiciyi Kurma


Crossroads, Linux ve TCP tabanlı hizmetler için hizmetten bağımsız, açık kaynaklı bir yük dengeleme ve yük devretme yardımcı programıdır. HTTP, HTTPS, SSH, SMTP ve DNS vb. için kullanılabilir. Aynı zamanda yalnızca bir bellek alanı tüketen ve yükü dengelerken performansın artmasına yol açan çok iş parçacıklı bir yardımcı programdır.

XR'nin nasıl çalıştığına bir göz atalım. XR'yi, ağ istemcileri ile istemci isteklerini yükü dengeleyen sunuculara gönderen bir sunucu yuvası arasında bulabiliriz.

Bir sunucu kapalıysa, XR bir sonraki istemci isteğini sıradaki bir sonraki sunucuya iletir, böylece istemci herhangi bir kesinti hissetmez. XR ile nasıl bir durumla karşılaşacağımızı anlamak için aşağıdaki şemaya bir göz atın.

İki web sunucusu, bir ağ geçidi sunucusu var ve XR'yi istemci isteklerini almak ve sunucular arasında dağıtmak için kuruyoruz.

XR Crossroads Gateway Server : 172.16.1.204
Web Server 01 : 172.16.1.222
Web Server 02 : 192.168.1.161

Yukarıdaki senaryoda, ağ geçidi sunucum (yani XR Crossroads) 172.16.1.222 IP adresini taşıyor, webserver01 172.16.1.222 ve dinliyor 8888 ve webserver02 bağlantı noktası 192.168.1.161'dir ve 5555 bağlantı noktası üzerinden dinleme yapar.

Şimdi ihtiyacım olan tek şey XR ağ geçidinin internetten aldığı tüm isteklerin yükünü dengelemek ve bunları yükü dengeleyen iki web sunucusu arasında dağıtmak.

Adım 1: XR Crossroads Load Balancer'ı Ağ Geçidi Sunucusuna yükleyin

1. Maalesef, XR kavşağını kaynak tarball'dan yüklemenin tek yolu olan çapraz geçişler için herhangi bir ikili RPM paketi mevcut değildir.

XR'yi derlemek için, kurulumun hatasız devam edebilmesi için sistemde C++ derleyicisinin ve Gnu make yardımcı programlarının yüklü olması gerekir.

yum install gcc gcc-c++ make

Daha sonra, resmi sitelerine (https://crossroads.e-tunity.com) giderek kaynak tarball'ı indirin ve arşivlenmiş paketi (ör. crossroads-stable.tar.gz) alın.

Alternatif olarak, paketi indirmek ve herhangi bir konuma (örneğin: /usr/src/) çıkarmak için aşağıdaki wget yardımcı programını kullanabilirsiniz, paketten çıkarılan dizine gidin ve “< Strong>make install” komutunu kullanın.

wget https://crossroads.e-tunity.com/downloads/crossroads-stable.tar.gz
tar -xvf crossroads-stable.tar.gz
cd crossroads-2.74/
make install

Kurulum tamamlandıktan sonra ikili dosyalar /usr/sbin/ altında ve /etc içinde XR yapılandırması yani “xrctl.xml” oluşturulur.

2. Son ön koşul olarak iki web sunucusuna ihtiyacınız var. Kullanım kolaylığı için bir sunucuda iki python SimpleHTTPServer örneği oluşturdum.

Python SimpleHTTPServer'ın nasıl kurulacağını görmek için SimpleHTTPServer'ı Kullanarak Kolayca İki Web Sunucusu Oluşturma başlıklı makalemizi okuyun.

Söylediğim gibi, iki web sunucusu kullanıyoruz ve bunlar 8888 ve bağlantı noktası aracılığıyla 172.16.1.222 üzerinde çalışan webserver01'dir. webserver02 192.168.1.161 üzerinde 5555 bağlantı noktası üzerinden çalışıyor.

2. Adım: XR Crossroads Yük Dengeleyiciyi Yapılandırma

3. Tüm gereklilikler mevcuttur. Şimdi yapmamız gereken xrctl.xml dosyasını XR sunucusunun internetten aldığı yükü web sunucuları arasında dağıtacak şekilde yapılandırmak.

Şimdi xrctl.xml dosyasını vi/vim düzenleyiciyle açın.

vim /etc/xrctl.xml

ve aşağıda önerildiği gibi değişiklikleri yapın.

<?xml version=<94>1.0<94> encoding=<94>UTF-8<94>?>
<configuration>
<system>
<uselogger>true</uselogger>
<logdir>/tmp</logdir>
</system>
<service>
<name>Tecmint</name>
<server>
<address>172.16.1.204:8080</address>
<type>tcp</type>
<webinterface>0:8010</webinterface>
<verbose>yes</verbose>
<clientreadtimeout>0</clientreadtimeout>
<clientwritetimout>0</clientwritetimeout>
<backendreadtimeout>0</backendreadtimeout>
<backendwritetimeout>0</backendwritetimeout>
</server>
<backend>
<address>172.16.1.222:8888</address>
</backend>
<backend>
<address>192.168.1.161:5555</address>
</backend>
</service>
</configuration>

Burada, xrctl.xml içinde yapılmış çok temel bir XR yapılandırmasını görebilirsiniz. XR sunucusunun ne olduğunu, arka uç sunucuların neler olduğunu ve bunların portlarını ve XR için web arayüz portunu tanımladım.

4. Şimdi aşağıdaki komutları vererek XR arka plan programını başlatmanız gerekiyor.

xrctl start
xrctl status

5. Tamam harika. Şimdi yapılandırmaların iyi çalışıp çalışmadığını kontrol etme zamanı. İki web tarayıcısı açın ve XR sunucusunun IP adresini port ile girin ve çıktıyı görün.

Fantastik. İyi çalışıyor. şimdi XR ile oynama zamanı.

6. Şimdi XR Crossroads kontrol paneline giriş yapma ve web arayüzü için yapılandırdığımız bağlantı noktasını görme zamanı. xrctl.xml'de yapılandırdığınız web arayüzünün bağlantı noktası numarasıyla birlikte XR sunucunuzun IP adresini girin.

http://172.16.1.204:8010

Görünüşe göre bu. Anlaşılması kolay, kullanıcı dostu ve kullanımı kolaydır. Sağ üst köşede her bir arka uç sunucunun kaç bağlantı aldığını ve alınan isteklere ilişkin ek ayrıntıları gösterir. Hatta her sunucunun taşıması gereken yük ağırlığını, maksimum bağlantı sayısını ve yük ortalamasını vb. ayarlayabilirsiniz.

En iyi yanı, aslında bunu xrctl.xml'i yapılandırmadan da yapabilmenizdir. Yapmanız gereken tek şey, aşağıdaki sözdizimine sahip komutu vermektir ve o, yapılan işi yapacaktır.

xr --verbose --server tcp:172.16.1.204:8080 --backend 172.16.1.222:8888 --backend 192.168.1.161:5555

Yukarıdaki sözdiziminin ayrıntılı açıklaması:

  1. –verbose, komut yürütüldüğünde ne olacağını gösterir.
  2. –server, paketi kurduğunuz XR sunucusunu tanımlar.
  3. –backend, trafiği dengelemeniz gereken web sunucularını tanımlar.
  4. Tcp, TCP hizmetlerini kullandığını tanımlar.

CROSSROADS'un belgeleri ve yapılandırması hakkında daha fazla ayrıntı için lütfen resmi sitelerini ziyaret edin: https://crossroads.e-tunity.com/.

XR Corssroads, sunucu performansınızı artırmanın, kesinti sürelerini korumanın ve yönetici görevlerinizi daha kolay ve kullanışlı hale getirmenin birçok yolunu sunar. Umarım rehberden memnun kalmışsınızdır. Öneriler ve açıklamalar için aşağıya yorum yapmaktan çekinmeyin. Kullanışlı Nasıl Yapılır'lar için Tecmint ile iletişim halinde olun.

Ayrıca Okuyun: Web Sunucusu Yükünü Kontrol Etmek İçin Pound Yük Dengeleyiciyi Yükleme