Nginstal HAProxy load balancer ing CentOS

Terjemahan artikel disiapake ing wayah wengi wiwitan kursus "administrator linux kab. Virtualisasi lan clustering"

Nginstal HAProxy load balancer ing CentOS

Load balancing minangka solusi umum kanggo aplikasi web skala horisontal ing macem-macem host nalika nyedhiyakake pangguna kanthi siji titik akses menyang layanan kasebut. HAProxy minangka salah sawijining piranti lunak open source load balancing paling populer sing uga nyedhiyakake kasedhiyan dhuwur lan fungsionalitas proxy.

HAProxy ngupayakake ngoptimalake panggunaan sumber daya, maksimalake throughput, nyilikake wektu nanggepi, lan ngindhari kakehan sumber daya individu. Bisa diinstal ing macem-macem distribusi Linux, kayata CentOS 8, sing bakal kita fokusake ing pandhuan iki, uga sistem. Debian 8 ΠΈ Ubuntu 16.

Nginstal HAProxy load balancer ing CentOS

HAProxy utamanΓ© cocok kanggo situs web kanthi lalu lintas dhuwur banget lan mulane asring digunakake kanggo nambah linuwih lan kinerja konfigurasi layanan web multi-server. Pandhuan iki njlentrehake langkah-langkah kanggo nyiyapake HAProxy minangka penyeimbang beban ing host awan CentOS 8, sing banjur nuntun lalu lintas menyang server web sampeyan.

Minangka prasyarat kanggo asil sing paling apik, sampeyan kudu duwe paling ora rong server web lan server imbangan beban. Server web kudu paling ora duwe layanan web dhasar sing mlaku, kayata nginx utawa httpd, kanggo nyoba ngimbangi beban ing antarane.

Nginstal HAProxy ing CentOS 8

Amarga HAProxy minangka aplikasi open source sing berkembang kanthi cepet, distribusi sing kasedhiya kanggo sampeyan ing repositori CentOS standar bisa uga dudu versi paling anyar. Kanggo ngerteni versi saiki, jalanake printah ing ngisor iki:

sudo yum info haproxy

HAProxy tansah nyedhiyakake telung versi stabil kanggo dipilih: rong versi paling anyar sing didhukung lan katelu, versi lawas sing isih nampa nganyari kritis. Sampeyan bisa tansah mriksa versi stabil paling anyar sing kadhaptar ing situs web HAProxy banjur mutusake versi sing pengin digarap.

Ing pandhuan iki, kita bakal nginstal versi stabil paling anyar 2.0, sing durung kasedhiya ing repositori standar nalika nulis pandhuan kasebut. Sampeyan kudu nginstal saka sumber asli. Nanging pisanan, priksa manawa sampeyan wis ketemu syarat sing dibutuhake kanggo ndownload lan ngumpulake program kasebut.

sudo yum install gcc pcre-devel tar make -y

Download kode sumber nggunakake printah ing ngisor iki. Sampeyan bisa mriksa yen ana versi anyar sing kasedhiya ing Kaca download HAProxy.

wget http://www.haproxy.org/download/2.0/src/haproxy-2.0.7.tar.gz -O ~/haproxy.tar.gz

Sawise download rampung, ekstrak file nggunakake printah ing ngisor iki:

tar xzvf ~/haproxy.tar.gz -C ~/

Pindhah menyang direktori sumber sing ora dibungkus:

cd ~/haproxy-2.0.7

Banjur ngumpulake program kanggo sistem sampeyan:

make TARGET=linux-glibc

Lan pungkasane, instal HAProxy dhewe:

sudo make install

HAProxy saiki wis diinstal, nanging mbutuhake sawetara manipulasi tambahan supaya bisa digunakake. Ayo terus nyetel piranti lunak lan layanan ing ngisor iki.

Nggawe HAProxy kanggo server sampeyan

Saiki tambahake direktori lan file statistik ing ngisor iki kanggo entri HAProxy:

sudo mkdir -p /etc/haproxy
sudo mkdir -p /var/lib/haproxy 
sudo touch /var/lib/haproxy/stats

Nggawe link simbolis kanggo binari supaya sampeyan bisa mbukak printah HAProxy minangka pangguna biasa:

sudo ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy

Yen sampeyan pengin nambah proxy menyang sistem minangka layanan, nyalin file haproxy.init saka conto menyang direktori /etc/init.d. Owahi ijin file supaya skrip bisa mlaku, banjur miwiti maneh systemd daemon:

sudo cp ~/haproxy-2.0.7/examples/haproxy.init /etc/init.d/haproxy
sudo chmod 755 /etc/init.d/haproxy
sudo systemctl daemon-reload

Sampeyan uga kudu ngidini layanan diwiwiti maneh kanthi otomatis nalika sistem diwiwiti:

sudo chkconfig haproxy on

Kanggo penak, dianjurake uga nambah pangguna anyar kanggo mbukak HAProxy:

sudo useradd -r haproxy

Sawise iki, sampeyan bisa mriksa nomer versi sing wis diinstal maneh nggunakake printah ing ngisor iki:

haproxy -v
HA-Proxy version 2.0.7 2019/09/27 - https://haproxy.org/

Ing kasus kita, versi kudu 2.0.7, kaya sing ditampilake ing conto output ing ndhuwur.

Pungkasan, firewall standar ing CentOS 8 cukup mbatesi kanggo proyek iki. Gunakake printah ing ngisor iki kanggo ngidini layanan sing dibutuhake lan ngreset firewall:

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-port=8181/tcp
sudo firewall-cmd --reload

Setup Balancer Load

Nggawe HAProxy minangka proses sing cukup prasaja. Intine, sampeyan mung kudu ngandhani HAProxy sambungan apa sing kudu dirungokake lan ing endi sing kudu dikirimake.

Iki ditindakake kanthi nggawe file konfigurasi /etc/haproxy/haproxy.cfg kanthi nemtokake setelan. Sampeyan bisa maca babagan opsi konfigurasi HAProxy ing kaca dokumentasiyen sampeyan pengin ngerti liyane babagan.

Load balancing ing lapisan transport (lapisan 4)

Ayo dadi miwiti karo persiyapan dhasar. Nggawe file config anyar, contone nggunakake vi kanthi printah ing ngisor iki:

sudo vi /etc/haproxy/haproxy.cfg

Tambah bagean ing ngisor iki menyang file. Ganti jeneng server apa kudu nelpon server ing kaca statistik, lan private_ip - alamat IP pribadi saka server sing pengin ngarahake lalu lintas web. Sampeyan bisa mriksa alamat IP pribadi ing panel kontrol UpCloud lan ing tab Jaringan pribadi ing menu Network.

global
   log /dev/log local0
   log /dev/log local1 notice
   chroot /var/lib/haproxy
   stats timeout 30s
   user haproxy
   group haproxy
   daemon

defaults
   log global
   mode http
   option httplog
   option dontlognull
   timeout connect 5000
   timeout client 50000
   timeout server 50000

frontend http_front
   bind *:80
   stats uri /haproxy?stats
   default_backend http_back

backend http_back
   balance roundrobin
   server server_name1 private_ip1:80 check
   server server_name2 private_ip2:80 check

Iki nemtokake penyeimbang muatan lapisan transportasi (lapisan 4) kanthi jeneng http_front ngrungokake ing port 80, sing banjur nerusake lalu lintas menyang backend standar sing jenenge http_back. Statistik tambahan /haproxy?stats nyambungake kaca statistik menyang alamat sing ditemtokake.

Macem-macem algoritma imbangan beban.

Nemtokake server ing bagean backend ngidini HAProxy nggunakake server kasebut kanggo ngimbangi beban miturut algoritma round-robin yen bisa.

Algoritma imbangan digunakake kanggo nemtokake server ing backend saben sambungan liwati. Ing ngisor iki sawetara opsi sing migunani:

  • Roundrobin: Saben server digunakake siji-sijine miturut bobote. Iki minangka algoritma sing paling lancar lan paling adil nalika wektu pangolahan server tetep disebarake kanthi rata. Algoritma iki dinamis, ngidini bobot server bisa diatur kanthi cepet.
  • Leastconn: server karo sambungan paling sithik dipilih. Round robin ditindakake ing antarane server kanthi beban sing padha. Nggunakake algoritma iki dianjurake kanggo sesi dawa kayata LDAP, SQL, TSE, lan sapiturute, nanging ora cocok banget kanggo sesi cendhak kayata HTTP.
  • Pisanan: Server pisanan karo slot sambungan kasedhiya nampa sambungan. Server dipilih saka ID numerik paling nganti paling dhuwur, sing dadi standar kanggo posisi server ing farm. Sawise server tekan maxconn, server sabanjurΓ© digunakake.
  • Source: Alamat IP sumber hash lan dibagi karo bobot total server sing mlaku kanggo nemtokake server sing bakal nampa panjaluk kasebut. Kanthi cara iki, alamat IP klien sing padha bakal pindhah menyang server sing padha, dene server tetep padha.

Nyetel imbangan beban ing level aplikasi (lapisan 7)

Pilihan liyane sing kasedhiya yaiku ngonfigurasi penyeimbang beban kanggo mbukak ing lapisan aplikasi (lapisan 7), sing migunani nalika bagean aplikasi web sampeyan ana ing host sing beda. Iki bisa digayuh kanthi nyepetake transmisi sambungan, contone kanthi URL.

Bukak file konfigurasi HAProxy nggunakake editor teks:

sudo vi /etc/haproxy/haproxy.cfg

Banjur atur segmen frontend lan backend kaya conto ing ngisor iki:

frontend http_front
   bind *:80
   stats uri /haproxy?stats
   acl url_blog path_beg /blog
   use_backend blog_back if url_blog
   default_backend http_back

backend http_back
   balance roundrobin
   server server_name1 private_ip1:80 check
   server server_name2 private_ip2:80 check

backend blog_back
   server server_name3 private_ip3:80 check

Frontend nyatakake aturan ACL sing diarani url_blog sing ditrapake kanggo kabeh sambungan karo path sing diwiwiti karo /blog. Use_backend nemtokake manawa sambungan sing cocog karo kondisi url_blog kudu dilayani dening backend sing jenenge blog_back, lan kabeh panjalukan liyane ditangani dening backend standar.

Ing sisih mburi, konfigurasi nyetel rong klompok server: http_back, kaya sadurunge, lan sing anyar disebut blog_back, sing nangani sambungan menyang example.com/blog.

Sawise ngganti setelan, simpen file lan miwiti HAProxy nggunakake printah ing ngisor iki:

sudo systemctl restart haproxy

Yen sampeyan nampa bebaya utawa pesen kesalahan nalika miwiti, priksa konfigurasi sampeyan lan priksa manawa sampeyan wis nggawe kabeh file lan folder sing dibutuhake, banjur coba miwiti maneh.

Nguji setelan

Sawise HAProxy dikonfigurasi lan mlaku, bukak alamat IP umum server load balancer ing browser lan priksa manawa sampeyan wis nyambung menyang backend kanthi bener. Parameter uri stats ing konfigurasi nggawe kaca statistik ing alamat sing ditemtokake.

http://load_balancer_public_ip/haproxy?stats

Nalika sampeyan mbukak kaca statistik, yen kabeh server nuduhake ijo, banjur persiyapan wis sukses!

Nginstal HAProxy load balancer ing CentOS

Kaca statistik ngemot sawetara informasi sing migunani kanggo nglacak host web, kalebu wektu munggah/mudhun lan jumlah sesi. Yen server ditandhani abang, priksa manawa server diuripake lan sampeyan bisa ping saka mesin load balancer.

Yen load balancer ora nanggapi, priksa manawa sambungan HTTP ora diblokir dening firewall. Uga priksa manawa HAProxy digunakake nggunakake printah ing ngisor iki:

sudo systemctl status haproxy

Nglindhungi kaca statistik nganggo sandhi

Nanging, yen kaca statistik mung kadhaptar ing sisih ngarep, mula mbukak kanggo kabeh wong, sing bisa uga ora apik. Nanging, sampeyan bisa nemtokake nomer port khusus kanthi nambahake conto ing ngisor iki ing pungkasan file haproxy.cfg. Ganti jeneng panganggo ΠΈ sandi kanggo soko aman:

listen stats
   bind *:8181
   stats enable
   stats uri /
   stats realm Haproxy Statistics
   stats auth username:password

Sawise nambahake grup pamireng anyar, mbusak link uri stats lawas saka grup frontend. Yen wis rampung, simpen file lan restart HAProxy.

sudo systemctl restart haproxy

Banjur bukak load balancer maneh kanthi nomer port anyar lan mlebu nganggo jeneng pangguna lan sandhi sing wis ditemtokake ing file konfigurasi.

http://load_balancer_public_ip:8181

Priksa manawa kabeh server sampeyan isih katon ijo banjur mbukak mung IP balancer beban tanpa nomer port ing browser sampeyan.

http://load_balancer_public_ip/

Yen sampeyan duwe paling ora sawetara macem-macem kaca kebangkrutan ing server mburi mburi, sampeyan bakal sok dong mirsani yen saben-saben sampeyan ngisi maneh kaca sampeyan entuk respon saka host liyane. Sampeyan bisa nyoba algoritma imbangan beda ing bagean konfigurasi utawa mriksa metu dokumentasi lengkap.

Kesimpulan: HAProxy Load Balancer

Sugeng kasil nyetel imbangan beban HAProxy! Malah kanthi persiyapan imbangan beban dhasar, sampeyan bisa nambah kinerja lan kasedhiyan aplikasi web kanthi signifikan. Pandhuan iki mung minangka introduksi kanggo load balancing karo HAProxy, sing bisa luwih akeh tinimbang sing bisa dicakup ing pandhuan persiyapan cepet. Disaranake nyobi karo konfigurasi beda nggunakake dokumentasi ekstensif, kasedhiya kanggo HAProxy, banjur miwiti ngrancang keseimbangan beban kanggo lingkungan produksi sampeyan.

Kanthi nggunakake macem-macem host kanggo nglindhungi layanan web kanthi headroom, load balancer dhewe bisa uga ana titik gagal. Sampeyan bisa nambah kasedhiyan dhuwur kanthi nginstal IP ngambang ing antarane sawetara load balancer. Sampeyan bisa ngerteni luwih akeh babagan iki ing kita artikel babagan alamat IP ngambang ing UpCloud.

Liyane babagan kursus "administrator linux kab. Virtualisasi lan clustering"***

Source: www.habr.com

Add a comment