Cara Menyediakan HAProxy sebagai Pengimbang Beban untuk Nginx dalam CentOS 8

Cara Menyediakan Haproxy Sebagai Pengimbang Beban Untuk Nginx Dalam Centos 8



Proksi Ketersediaan Tinggi, juga disingkatkan sebagai HAProxy ialah pengimbang beban yang ringan dan pantas yang juga berfungsi sebagai pelayan proksi. Sebagai pengimbang beban, ia memainkan peranan penting dalam mengagihkan trafik web masuk merentas berbilang pelayan web menggunakan kriteria tertentu. Dengan berbuat demikian, ia memastikan ketersediaan yang tinggi dan toleransi kesalahan sekiranya terdapat terlalu banyak permintaan serentak yang mungkin membebankan pelayan web tunggal.

HaProxy digunakan oleh tapak popular seperti Tumblr, GitHub dan StackOverflow. Dalam panduan ini, kami akan membawa anda melalui pemasangan HAProxy dalam persediaan pelayan web yang dikuasakan menggunakan Nginx.

Persediaan Makmal

3 contoh pelayan CentOS 7 seperti yang ditunjukkan







Nama hos           Alamat IP

pengimbang_beban      3.17.12.132
pelayan_01          3.19.229.234
pelayan_02          3.17.9.217

Langkah 1: Edit fail /etc/hosts untuk pengimbang beban

Untuk bermula, log masuk ke sistem pengimbang beban dan ubah suai fail /etc/hosts untuk memasukkan nama hos dan alamat IP kedua-dua pelayan web seperti yang ditunjukkan



$ kerana / dan lain-lain / tuan rumah
3.19.229.234   pelayan_01
3.17.9.217     pelayan-02



Setelah selesai, simpan perubahan dan keluar dari fail konfigurasi.





Sekarang pergi ke setiap pelayan web dan kemas kini /etc/hosts fail dengan alamat IP dan nama hos pengimbang beban

3.17.12.132   pengimbang beban

Selepas itu, sahkan  bahawa anda boleh ping pengimbang beban daripada pelayan_01



Dan begitu juga dari server_02

Juga, pastikan, anda boleh ping pelayan daripada pengimbang beban.

Sempurna! semua pelayan boleh berkomunikasi dengan pengimbang beban!

Langkah 2: Pasang dan konfigurasikan HA Proxy pada pengimbang beban

Oleh kerana HA Proxy tersedia dari repositori rasmi CentOS, kami akan memasangnya menggunakan pengurus pakej yum atau dnf.

Tetapi seperti biasa, kemas kini sistem dahulu

# kemas kini yum

Seterusnya, pasang HA Proxy seperti yang ditunjukkan

# sedap pasang haproxy

Selepas pemasangan berjaya,  navigasi ke direktori haproxy.

# cd / dan lain-lain / haproxy

Amalan terbaik memerlukan kami menyandarkan sebarang fail konfigurasi sebelum membuat sebarang pengubahsuaian. Jadi Sandarkan haproxy.cfg fail dengan menamakan semula.

# mv haproxy.cfg  haproxy.cfg.bak

Seterusnya, teruskan dan buka fail konfigurasi

kerana haproxy.cfg

Pastikan anda membuat pengubahsuaian seperti yang ditunjukkan

#------------------------------------------------ --------------------
# Tetapan global
#------------------------------------------------ --------------------
global
log         127.0.0.1 setempat2 #Konfigurasi log

chroot / adalah / lib / haproxy
pidfile / adalah / lari / haproxy.pid
maxconn 4000
pengguna        haproxy #Haproxy berjalan di bawah 'haproxy' pengguna dan kumpulan
kumpulan       haproxy
daemon

# hidupkan soket unix statistik
soket statistik / adalah / lib / haproxy / statistik

#------------------------------------------------ --------------------
# lalai biasa yang akan dilakukan oleh semua bahagian 'dengar' dan 'belakang'
# gunakan jika tidak ditetapkan dalam blok mereka
#------------------------------------------------ --------------------
lalai
mod                    http
log                     global
pilihan                  httplog
pilihan                  dontlognull
pilihan http-server-close
pilihan ke hadapan untuk       kecuali 127.0.0.0 / 8
pilihan                  penghantaran semula
mencuba semula 3
tamat masa http-permintaan    10s
baris gilir tamat masa           1m
tamat masa sambung         10s
pelanggan tamat masa          1m
pelayan tamat masa          1m
tamat masa http-kekal-hidup 10s
semakan tamat masa           10s
maxconn 3000

#------------------------------------------------ --------------------
Konfigurasi Pemantauan #HAProxy
#------------------------------------------------ --------------------
dengar haproxy3-monitoring * : 8080 #Haproxy Monitoring dijalankan pada port 8080
mod http
pilihan ke hadapan untuk
pilihan httpclose
statistik membolehkan
statistik menunjukkan-legenda
statistik muat semula 5s
statistik uri / statistik #URL untuk pemantauan HAProxy
alam statistik Haproxy\ Statistics
pengesahan statistik Kata laluan123: Kata laluan123 #Pengguna dan Kata Laluan untuk log masuk ke papan pemuka pemantauan
pentadbir statistik jika BENAR
default_backend app-main #Ini adalah pilihan untuk memantau bahagian belakang

#------------------------------------------------ --------------------
# Konfigurasi Hadapan
#------------------------------------------------ --------------------
bahagian hadapan utama
mengikat * : 80
pilihan http-server-close
pilihan ke hadapan untuk
default_backend app-main

#------------------------------------------------ --------------------
# BackEnd round robin sebagai algoritma imbangan
#------------------------------------------------ --------------------
apl bahagian belakang utama

roundrobin imbangan Algoritma #Imbangan

pilihan httpchk HEAD / HTTP / 1.1 \r\nHos:\ localhost
#Semak aplikasi pelayan sudah siap dan sihat - 200 kod status

pelayan pelayan_01 3.19.229.234: 80 semak #Nginx1

pelayan pelayan_02 3.17.9.217: 80 semak #Nginx2

Pastikan anda mengubah suai nama hos pelayan web dan alamat IP seperti yang ditunjukkan dalam dua baris terakhir. Simpan perubahan dan keluar.

Langkah seterusnya adalah untuk mengkonfigurasi Rsyslog supaya dapat log statistik HAProxy.

# kerana / dan lain-lain / rsyslog.conf

Pastikan anda menyahkomen baris di bawah untuk membenarkan sambungan UDP

$ModLoad imudp
$UDPServerRun 514

Seterusnya, teruskan dan buat fail konfigurasi baharu haproxy.conf

# kerana / dan lain-lain / rsyslog.d / haproxy.conf

Tampal baris berikut, simpan dan keluar

local2.=maklumat / adalah / log / haproxy-access.log #Untuk Log Akses
setempat2.perasan / adalah / log / haproxy-info.log #Untuk Maklumat Perkhidmatan - Bahagian belakang, pengimbang muatan

Untuk perubahan berkuat kuasa mulakan semula daemon rsyslog seperti yang ditunjukkan:

# systemctl mulakan semula rsyslog

Kemudian mulakan dan dayakan HAProxy

# systemctl mulakan rsyslog
# systemctl membolehkan rsyslog

Sahkan bahawa HAProxy sedang berjalan

# systemctl status rsyslog

Langkah 3: Pasang  dan konfigurasikan Nginx

Kini, satu-satunya bahagian yang tinggal ialah pemasangan Nginx. Log masuk ke setiap pelayan dan kemas kini pakej sistem dahulu:

# kemas kini yum

Pasang seterusnya  EPEL (Pakej Tambahan untuk Linux Perusahaan)

# sedap pasang pelepasan hangat

Untuk memasang Nginx, jalankan arahan:

# sedap pasang nginx

Seterusnya, mulakan dan dayakan Nginx

# systemctl mulakan nginx
# systemctl membolehkan nginx

Kami kemudiannya akan mengubah suai fail index.html dalam kedua-dua kes untuk menunjukkan atau mensimulasikan cara pengimbang beban dapat mengagihkan trafik web merentas kedua-dua pelayan.

Untuk pelayan_01

# bergema 'server_01. Hey! Selamat datang ke pelayan web pertama' > index.html

Untuk pelayan_02

# bergema 'server_02. Hey! Selamat datang ke pelayan web kedua' > index.html

Untuk perubahan yang akan dilaksanakan, mulakan semula Nginx

# systemctl mulakan semula nginx

Langkah 4: Menguji jika pengimbang beban berfungsi

Kami akhirnya berada di titik di mana kami ingin melihat sama ada konfigurasi berfungsi. Jadi log masuk ke pengimbang beban dan laksanakan arahan curl berulang kali

# curl 3.17.12.132

Anda harus mendapatkan output berselang-seli pada terminal yang menunjukkan nilai index.html  daripada server_01 dan server_02

Sekarang mari kita uji menggunakan penyemak imbas web. Semak imbas alamat IP pengimbang beban anda

http: // load-balancer-IP-address

Halaman pertama akan memaparkan kandungan daripada mana-mana pelayan web


Sekarang muat semula halaman web dan semak untuk melihat sama ada ia memaparkan kandungan daripada pelayan web yang lain

Sempurna! Imbangan beban mengagihkan trafik IP secara sama rata antara kedua-dua pelayan web!
Ini mengakhiri tutorial ini tentang cara anda boleh memasang serta mengkonfigurasi HAProxy pada CentOS 8. Maklum balas anda akan sangat dihargai.