Pasang dan konfigurasikan HAPROXY ON RHEL 8 / CENTOS 8 LINUX

Pasang dan konfigurasikan HAPROXY ON RHEL 8 / CENTOS 8 LINUX

Proksi happroxy atau ketersediaan tinggi adalah sumber terbuka TCP dan HTTP Load Balancer dan Perisian Pelayan Proksi. Haproxy telah ditulis oleh Willy Tarreau di C, ia menyokong SSL, pemampatan, format log yang disimpan, dan penulisan header. Haproxy adalah pelayan proksi yang cepat dan ringan dan mengimbangi beban dengan jejak memori kecil dan penggunaan CPU yang rendah. Ia digunakan oleh laman web besar seperti github, stackoverflow, reddit, tumblr, twitter dan lain -lain. Ia telah menjadi pelayan beban perisian yang paling popular dan pelayan proksi dalam beberapa tahun yang lalu.

Dalam tutorial ini, anda akan melalui pemasangan dan konfigurasi Haproxy pada RHEL 8 / CentOS 8. Kami akan memasang HAProxy pada pelayan tunggal dan kemudian memasang pelayan web nginx di pelayan lain. Haproxy akan bertindak sebagai pengimbang beban untuk pelayan web nginx.

Dalam tutorial ini anda akan belajar:

  • Seni bina dan konsep haproxy
  • Konfigurasikan fail hos untuk resolusi nama
  • Pasang dan konfigurasikan HAPROXY
  • Pasang dan konfigurasikan nginx
  • Menguji ciri pengimbangan beban
  • Akses URL Statistik Haproxy

Senibina Haproxy.

Keperluan perisian dan konvensyen yang digunakan

Keperluan Perisian dan Konvensyen Talian Perintah Linux
Kategori Keperluan, konvensyen atau versi perisian yang digunakan
Sistem RHEL 8 / CENTOS 8
Perisian Haproxy, nginx
Yang lain Akses istimewa ke sistem linux anda sebagai akar atau melalui sudo perintah.
Konvensyen # - Memerlukan arahan Linux yang diberikan untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
$ - Memerlukan arahan Linux yang diberikan sebagai pengguna yang tidak layak

Seni bina dan konsep haproxy

Haproxy boleh berjalan dalam dua mod: Lapisan mod TCP 4 dan lapisan mod HTTP 7. Dalam mod Layer 4 TCP, HAPROXY meneruskan paket TCP mentah dari klien ke pelayan aplikasi. Dalam mod HTTP Layer 7, HAPROXY menghuraikan tajuk HTTP sebelum menghantarnya ke pelayan aplikasi. Dalam tutorial ini, kami akan menggunakan Nginx sebagai pelayan web yang menyokong mod HTTP Layer 7.

Lapisan 4 mengimbangi beban. Lapisan 7 mengimbangi beban.



Algoritma keseimbangan adalah algoritma yang digunakan oleh Haproxy untuk memilih pelayan ketika melakukan pengimbangan beban. Mod berikut boleh didapati:

Robin pusingan

Ini adalah algoritma keseimbangan yang paling mudah. Untuk setiap sambungan baru, ia akan dikendalikan oleh pelayan backend seterusnya. Sekiranya pelayan backend terakhir dalam senarai dicapai, ia akan bermula semula dari bahagian atas senarai backend.

Paling rendah

Sambungan baru akan dikendalikan oleh pelayan backend dengan jumlah hubungan yang paling sedikit. Ini berguna apabila masa dan beban permintaan berbeza -beza.

Sumber

Ini adalah untuk sesi melekit, IP pelanggan akan hancur untuk menentukan pelayan backend yang menerima permintaan terakhir dari IP ini. Jadi IP A akan sentiasa dikendalikan oleh Backend1, dan IP B akan sentiasa dikendalikan oleh Banckend2 untuk tidak mengganggu sesi.

Konfigurasikan fail hos untuk resolusi nama

Log masuk ke pelayan pengimbang beban dan edit /etc/hos Fail dan Haproxy LoadBalancer, Nginx1, Nginx2 Hostnames. Salin fail yang sama pada dua nod lain nginx dan periksa sambungan rangkaian melalui ping comand.

# vim /etc /hosts
 192.168.1.108 LoadBalancer.Contoh.com 192.168.1.104 nginx1.Contoh.com 192.168.1.105 nginx2.Contoh.com 
Salinan

Pasang dan konfigurasikan HAPROXY

Haproxy boleh didapati di repositori RHEL 8 / CentOS 8, oleh itu log masuk ke pelayan LoadBalancer dan pasang pakej Haproxy dengan arahan YUM ini.

# yum memasang haproxy

Setelah berjaya dipasang, anda boleh menggunakan arahan di bawah untuk mengesahkan pemasangan.

# yum info haproxy
# YUM INFO HAPROXY UPDATING Repositori Pengurusan Langganan. Mengemas kini repositori pengurusan langganan. Pemeriksaan Tamat Metadata Terakhir: 0:06:03 lalu pada Sabtu 16 Mac 2019 11:40:24 PM +04. Pakej Pemasangan Nama: Versi Haproxy: 1.8.14 Siaran: 1.EL8 Arch: x86_64 Saiz: 4.1 m Sumber: Haproxy-1.8.14-1.EL8.SRC.RPM Repo: @System dari Repo: RHEL-8-untuk-X86_64-Appstream-Beta-RPMS Ringkasan: Proksi terbalik HAPROXY untuk Persekitaran Ketersediaan Tinggi URL: http: // www.Haproxy.org/ lesen: gplv2+ penerangan: HAPROXY adalah proksi terbalik TCP/ HTTP yang sangat sesuai untuk tinggi: Persekitaran ketersediaan. Sesungguhnya, boleh :: - Permintaan HTTP Laluan Bergantung pada kuki yang ditetapkan secara statik: - Beban beban di antara beberapa pelayan sambil menjamin ketekunan pelayan: Melalui penggunaan kuki HTTP: - Tukar ke pelayan sandaran sekiranya utama gagal: - Terima sambungan ke pelabuhan khas yang didedikasikan untuk pemantauan perkhidmatan: - Berhenti menerima sambungan tanpa melanggar yang sedia ada: - Tambah, Ubahsuai, dan Padam tajuk HTTP di kedua -dua arah: - Permintaan blok yang sepadan dengan corak tertentu: - Laporkan status terperinci kepada pengguna yang disahkan dari URI: dipintas dari permohonan 

Apabila pemasangan selesai, pergi ke /etc/haproxy/ direktori dan sandarkan fail konfigurasi asal.



# cd/etc/haproxy/ # cp haproxy.CFG Haproxy.cfg.Orig 

Seterusnya, lakukan perubahan di bawah dalam fail konfigurasi haproxy Haproxy.cfg dengan mana -mana editor.

#------------------------------------------------- -------------------- # Contoh Konfigurasi untuk aplikasi web yang mungkin. Lihat # pilihan konfigurasi penuh dalam talian. # https: // www.Haproxy.org/muat turun/1.8/doc/konfigurasi.TXT # # ----------------------------------------------- ---------------------- #--------------------------- ------------------------------------------ # Tetapan global #---- -------------------------------------------------- --------------- Global # untuk mempunyai mesej ini berakhir di/var/log/haproxy.Log Anda Akan # Perlu: # # 1) Konfigurasikan SYSLOG Untuk Menerima Acara Log Rangkaian. Ini dilakukan # dengan menambahkan pilihan '-r' ke syslogd_options dalam #/etc/sysconfig/syslog # # 2) Konfigurasikan acara local2 untuk pergi ke/var/log/haproxy.fail log. Barisan seperti berikut boleh ditambah ke #/etc/sysconfig/syslog # # local2.*/var/log/haproxy.log # log 127.0.0.1 local2 chroot/var/lib/haproxy pidfile/var/run/haproxy.pid maxconn 4000 pengguna haproxy kumpulan haproxy daemon # menghidupkan statistik unix soket statistik soket/var/lib/haproxy/stats # Gunakan sistem crypto-policies-policies-ssl-default-bind-ciphers = sistem SSL-Default-Server-Siphers Profil = Sistem #----------------------------------------------- ---------------------- # Lalai biasa bahawa semua bahagian 'mendengar' dan 'backend' akan # digunakan jika tidak ditetapkan di blok mereka # ---- -------------------------------------------------- --------------- Mod Defaults Http Log Global Option Httplog Opsyen Dontlognull Option Http-Server-Close Forwardfor untuk 127.0.0.0/8 Opsyen Redispatch Retries 3 Timeout HTTP-Request 10s Timeout Giliran 1m Timeout Connect 10s Timeout Client 1M Timeout Server 1m Timeout Http-Keep-Alive 10s Timeout Semak 10s Maxconn 3000 #------------- -------------------------------------------------- ------ # haproxy pemantauan konfigurasi # --------------------------------------- ------------------------------ Dengar Statistik Bind LoadBalancer.Contoh.com: 8080 # haproxy pemantauan dijalankan pada port 8080 mod http pilihan ke hadapan untuk pilihan statistik httpclose membolehkan statistik menunjukkan statistik statistik menyegarkan 5S statistik uri /statistik # url untuk pemantauan haproxy stats realm haproxy \ statistik statistik pengarah dan kata laluan ke pemantauan pemantauan #stats admin jika benar default_backend loadbalancer #ini adalah pilihan untuk memantau backend #------------------------------- -------------------------------------- # Frontend Utama yang Proxys ke Backends # --- -------------------------------------------------- ---------------- LoadBalancer Frontend Bind LoadBalancer.Contoh.com: 80 #acl url_static path_beg -i /static /images /javascript /stylesheets #acl url_static path_end -i .JPG .gif .png .CSS .js #use_backend static jika pilihan url_static http-server-close opsyen ke hadapan untuk lalai loadbalancer #--------------------------------- ------------------------------------ # Backend Statik untuk melayani imej, stylesheets dan #- -------------------------------------------------- ----------------- #Backend Static # Balance Roundrobin # Server Static 127.0.0.1: 4331 Semak #--------------------------------------------- ------------------------ # Pusingan Robin Mengimbangi Antara Pelbagai Backends # ----------------- -------------------------------------------------- - Backend LoadBalancer Baki Roundrobin # Baki Algoritma Pilihan Httpchk Head / Http / 1.1 \ r \ nhost: \ localhost # periksa aplikasi pelayan naik dan healty - 200 status status pelayan nginx1.Contoh.com 192.168.1.104: 80 Semak # Nginx Server1 Server Nginx2.Contoh.com 192.168.1.105: 80 Semak # NGNIX Server2 

Simpan fail konfigurasi ini dan keluar.

Sekarang, kami akan mengkonfigurasi daemon rsyslog untuk log statistik haproxy. Edit rsyslog.Conf fail untuk membolehkan port UDP 514 digunakan oleh rsyslog. Buka fail konfigurasi rsyslog dan uncomment garis untuk membolehkan sambungan UDP.

# vim /etc /rsyslog.Conf
Modul (LOAD = "IMUDP") # perlu dilakukan hanya sekali input (type = "imudp" port = "514") 

Simpan fail dengan perubahan dan keluar di atas. Kemudian buat fail konfigurasi Haproxy baru untuk rsyslog dan tambahkan entri di bawah dalam fail tersebut.

# cd /etc /rsyslog.D/ # VI Haproxy.Conf 
tempatan2.= info/var/log/haproxy-access.log # untuk log akses local2.notis/var/log/haproxy-info.log # untuk maklumat perkhidmatan - backend, loadbalancer 

Sekarang mulakan semula rsyslog dan kemudian mulakan perkhidmatan haproxy dan tambahkan haproxy untuk bermula pada waktu boot.

# Systemctl Restart RSYSLOG # Systemctl Mula Haproxy # SystemCtl Dayakan HAPROXY 

Pasang dan konfigurasikan nginx

Nginx sudah menjadi sebahagian daripada repo RHEL 8 / CentOS 8 yang sedia ada dan boleh dipasang dengan arahan berikut.

# yum pasang nginx

Setelah dipasang, anda dapat mengesahkan pemasangan dengan bantuan arahan ini.

# yum info nginx


# YUM Info Nginx Mengemas kini repositori pengurusan langganan. Mengemas kini repositori pengurusan langganan. Pemeriksaan Tamat Metadata Terakhir: 0:06:14 lalu pada Sabtu 16 Mac 2019 11:40:24 PM +04. Pakej Pemasangan Nama: Nginx Epoch: 1 Versi: 1.14.0 Siaran: 3.EL8+1631+BA902CF0 Arch: x86_64 Saiz: 568 K Sumber: Nginx-1.14.0-3.EL8+1631+BA902CF0.SRC.RPM Repo: RHEL-8-untuk-X86_64-Appstream-Beta-RPMS Ringkasan: Pelayan web prestasi tinggi dan URL pelayan proksi terbalik: http: // nginx.Org/ Lesen: BSD Penerangan: Nginx adalah pelayan web dan pelayan proksi terbalik untuk protokol HTTP, SMTP, POP3 dan: IMAP, dengan tumpuan yang kuat pada kesesuaian, prestasi dan rendah: penggunaan memori yang tinggi. 

Setelah nginx dipasang, pergi ke direktori web dan tukar indeks.html fail sewajarnya. Pastikan anda melakukan langkah di bawah pada pelayan nginx1 dan nginx2.

# cd/usr/share/nginx/html # ls -lrth total 20k -rw-r---. 1 akar root 2.8K 31 Okt 2016 Poweredby.png -rw-r-r--. 1 root root 368 Okt 31 2016 nginx-logo.png -rw-r-r--. 1 akar akar 3.7k 16 Mac 20:39 50x.HTML -RW-R-R--. 1 akar akar 3.6k 16 Mac 20:39 404.HTML -RW-R-R--. 1 akar akar 3.7K 16 Mac 20:42 Indeks.html 

Seterusnya, tambah nginx untuk bermula pada masa boot dan kemudian mulakan daemon dengan arahan di bawah.

# Systemctl Dayakan Nginx # Systemctl Mula Nginx 

Menguji ciri pengimbangan beban

Ujian boleh dilakukan dengan melayari dan mengakses IP LoadBalancer 192.168.1.108 (untuk kes saya) dan anda akan melihat satu kali ia pergi ke Nginx Node1 dan kali kedua ia pergi ke Nginx Node2 dalam fesyen Robin bulat.

Laman web di nginx node1. Laman web di nginx node2.

Anda juga boleh menyemak /var/log/haproxy-akses.log Untuk mendapatkan maklumat terperinci mengenai pengimbangan beban.

Akses URL Statistik Haproxy

Akses Papan Pemuka untuk Laporan Statistik Haproxy yang dijalankan di port 8080 dengan nama pengguna dan kata laluan yang ditakrifkan dalam Haproxy.cfg fail.



http: // 192.168.1.108: 8080/statistik
Akses URL Statistik HAPROPLY. Haproxy Stats Dashboard.

Haproxy berjaya dan bertindak sebagai pengimbang beban untuk dua pelayan web nginx.

Kesimpulan

Proksi Haproxy atau Tinggi Tinggi adalah perisian sumber terbuka yang menyediakan ketersediaan yang tinggi untuk perkhidmatan berasaskan TCP, ia beroperasi sebagai pengimbang beban HTTP dan pelayan proksi. Perisian ini ditulis dalam C dan menyokong SSL, Keep-Alive dan Mampatan. Haproxy adalah pilihan yang tepat untuk semua orang yang memerlukan pelayan beban dan pelayan proksi yang cepat dan ringan dengan jejak memori kecil dan penggunaan CPU yang rendah. Haproxy boleh dijalankan dalam mod Layer 4 TCP dan mod 7 HTTP. Nginx hanya menyokong mod HTTP Layer 7 dengan HAPROXY. Sekiranya anda ingin menggunakan mod Layer 4 TCP, anda boleh menggunakan pelayan web lain seperti Apache. Pada Rhel 8 / Centos 8 Linux, Haproxy boleh didapati di repositori lalai. Sangat mudah dipasang dan dikonfigurasikan.

Tutorial Linux Berkaitan:

  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Menguasai Gelung Skrip Bash
  • Mint 20: Lebih baik daripada Ubuntu dan Microsoft Windows?
  • Membandingkan Linux Apache Prefork vs Pekerja MPMS
  • Ubuntu 20.04 WordPress dengan pemasangan Apache
  • Ubuntu 20.04: WordPress dengan pemasangan nginx
  • Muat turun linux
  • Buat pengalihan dan tulis semula peraturan ke dalam .Htaccess di Apache ..
  • Berapa kerap anda perlu reboot pelayan Linux anda?