HaProxy, Tumblr, GitHub ve StackOverflow gibi popüler siteler tarafından kullanılır. Bu kılavuzda, Nginx kullanılarak desteklenen bir web sunucusu kurulumunda HAProxy kurulumunda size yol göstereceğiz.
Laboratuvar Kurulumu
Gösterildiği gibi 3 CentOS 7 sunucusu örneği
Ana makine adı IP adresleriload_balancer 3.17.12.132
server_01 3.19.229.234
server_02 3.17.9.217
Adım 1: Yük dengeleyici için /etc/hosts dosyasını düzenleyin
Başlamak için, yük dengeleyici sisteminde oturum açın ve /etc/hosts dosyasını, gösterildiği gibi iki web sunucusunun ana bilgisayar adlarını ve IP adreslerini içerecek şekilde değiştirin
$ vim /etc/hosts3.19.229.234 sunucu_01
3.17.9.217 sunucu-02
Tamamlandığında, değişiklikleri kaydedin ve yapılandırma dosyasından çıkın.
Şimdi web sunucularının her birine gidin ve /etc/hostlar yük dengeleyicinin IP adresi ve ana bilgisayar adını içeren dosya
3.17.12.132 yük dengeleyiciBundan sonra, server_01'den yük dengeleyiciye ping atabileceğinizi onaylayın
Ve aynı şekilde server_02'den
Ayrıca, sunuculara yük dengeleyiciden ping atabildiğinizden emin olun.
Mükemmel ! tüm sunucular yük dengeleyici ile iletişim kurabilir!
2. Adım: Yük dengeleyicide HA Proxy'yi kurun ve yapılandırın
HA Proxy, CentOS resmi deposunda hazır olduğundan, onu yum veya dnf paket yöneticisini kullanarak kuracağız.
Ama her zaman olduğu gibi, önce sistemi güncelleyin
# yum güncellemesiArdından, HA Proxy'yi gösterildiği gibi yükleyin
# yum haproxy'yi yükle
Başarılı kurulumdan sonra haproxy dizinine gidin.
# cd /etc/haproxyEn iyi uygulama, herhangi bir değişiklik yapmadan önce herhangi bir yapılandırma dosyasını yedeklememizi gerektirir. Yani yedekleyin haproksi.cfg yeniden adlandırarak dosya.
#mv haproxy.cfg haproxy.cfg.bakArdından, devam edin ve yapılandırma dosyasını açın
vim haproxy.cfgDeğişikliği gösterildiği gibi yaptığınızdan emin olun
#---------------------------------------------------------------------# Genel Ayarlar
#---------------------------------------------------------------------
küresel
günlük 127.0.0.1 yerel2 #Günlük yapılandırması
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy #Haproxy "haproxy" kullanıcısı ve grubu altında çalışıyor
grup haproxy
arka plan programı
# istatistik unix soketini aç
istatistik soketi /var/lib/haproxy/stats
#---------------------------------------------------------------------
# tüm 'dinle' ve 'arka uç' bölümlerinin kullanacağı ortak varsayılanlar
# bloklarında belirtilmemişse kullanın
#---------------------------------------------------------------------
varsayılanlar
mod http
günlük küresel
seçenek httplog
seçenek donlognull
seçenek http-sunucu-kapat
127 dışında seçenek iletme .0.0.0/8
seçenek yeniden gönderme
yeniden deneme 3
zaman aşımı http isteği 10s
zaman aşımı kuyruğu 1m
zaman aşımı bağlantısı 10s
zaman aşımı istemcisi 1m
zaman aşımı sunucusu 1m
zaman aşımı http-canlı tutma 10s
zaman aşımı denetimi 10s
maxconn 3000
#---------------------------------------------------------------------
#HAProxy İzleme Yapılandırması
#---------------------------------------------------------------------
dinle haproxy3-monitoring *:8080 #Haproxy Monitoring 8080 numaralı bağlantı noktasında çalıştır
mod http
seçenek ileri
seçenek httpclose
istatistikler etkinleştir
istatistikler-efsaneler
istatistik yenileme 5s
istatistikler uri /stats HAProxy izleme için #URL
istatistikler alanı Haproxy\ İstatistikler
stats auth Password123: İzleme panosunda oturum açmak için Password123#User ve Password
TRUE ise istatistik yöneticisi
default_backend app-main #Bu, isteğe bağlı olarak arka ucu izlemek içindir
#---------------------------------------------------------------------
# Ön Uç Yapılandırması
#---------------------------------------------------------------------
ön uç ana
bağlama *:80
seçenek http-sunucu-kapat
seçenek ileri
default_backend uygulama-ana
#---------------------------------------------------------------------
# Denge algoritması olarak BackEnd round robin
#---------------------------------------------------------------------
arka uç uygulaması-ana
denge çevrimi #Balance algoritması
seçenek httpchk HEAD / HTTP/1.1\r\nAna bilgisayar:\ localhost
#Sunucu uygulamasının çalıştığını ve sağlıklı olduğunu kontrol edin - 200 durum kodu
sunucu sunucusu_01 3.19.229.234:80 kontrol #Nginx1
sunucu sunucusu_02 3.17.9.217:80 kontrol #Nginx2
Web sunucularının ana bilgisayar adını ve IP adreslerini son iki satırda belirtildiği gibi değiştirdiğinizden emin olun. Değişiklikleri kaydedin ve çıkın.
Sonraki adım, Rsyslog'u HAProxy istatistiklerini günlüğe kaydedebilecek şekilde yapılandırmak olacaktır.
# vim /etc/rsyslog.konfUDP bağlantılarına izin vermek için aşağıdaki satırların yorumunu kaldırdığınızdan emin olun
$ModLoad imudp'si$UDPServerRun 514
Ardından, devam edin ve yeni bir yapılandırma dosyası oluşturun haproksi.konf
# vim /etc/rsyslog.d/haproksi.konfAşağıdaki satırları yapıştırın, kaydedin ve çıkın
yerel2.=bilgi /var/log/haproxy-access.günlük #Erişim Günlüğü İçinyerel2.bildirim /var/log/haproxy-info.günlük #Hizmet Bilgisi İçin - Arka uç, yük dengeleyici
Değişikliklerin etkili olması için rsyslog arka plan programını gösterildiği gibi yeniden başlatın:
# systemctl rsyslog'u yeniden başlatArdından HAProxy'yi başlatın ve etkinleştirin
# systemctl rsyslog'u başlat# systemctl rsyslog'u etkinleştir
HAProxy'nin çalıştığını doğrulayın
# systemctl durumu rsyslog
3. Adım: Nginx'i kurun ve yapılandırın
Şimdi geriye kalan tek kısım Nginx kurulumu. Sunucuların her birine giriş yapın ve önce sistem paketlerini güncelleyin:
# yum güncellemesiSonraki yükleme EPEL (Enterprise Linux için Ekstra Paketler)
# yum epel sürümünü yükleyinNginx'i kurmak için şu komutu çalıştırın:
# yum nginx'i kurunArdından, Nginx'i başlatın ve etkinleştirin
# systemctl nginx'i başlat# systemctl nginx'i etkinleştir
Daha sonra dizini değiştireceğiz.Yük dengeleyicinin web trafiğini her iki sunucuya nasıl dağıtabildiğini göstermek veya simüle etmek için her iki durumda da bir html dosyası oluşturun.
server_01 için
# echo "sunucu_01. Hey ! İlk web sunucusuna hoş geldiniz" > dizin.htmlserver_02 için
# echo "sunucu_02. Hey ! İkinci web sunucusuna hoş geldiniz" > dizin.htmlDeğişikliklerin uygulanabilmesi için Nginx'i yeniden başlatın
# systemctl nginx'i yeniden başlatAdım 4: Yük dengeleyicinin çalışıp çalışmadığını test etme
Sonunda konfigürasyonun çalışıp çalışmadığını görmek istediğimiz noktadayız. Bu yüzden yük dengeleyicide oturum açın ve curl komutunu tekrar tekrar çalıştırın
# kıvrılma 3.17.12.132Endeks değerini gösteren terminalde alternatif çıktı almalısınız.html server_01 ve server_02'den
Şimdi bir web tarayıcısı kullanarak test edelim. Yük dengeleyicinizin IP adresine göz atın
http://load-balancer-IP-adresiİlk sayfa, herhangi bir web sunucusundan gelen içeriği gösterecektir
Şimdi web sayfasını yenileyin ve diğer web sunucusundan içerik gösterip göstermediğini kontrol edin
Mükemmel ! Yük dengesi, IP trafiğini iki web sunucusu arasında eşit olarak dağıtıyor !
Bu, CentOS 8'de HAProxy'yi nasıl kurabileceğiniz ve yapılandırabileceğinizle ilgili bu öğreticiyi tamamlar. Geri bildiriminiz çok takdir edilecektir.