Instal dan Konfigurasikan Haproxy di RHEL 8 / CENTOS 8 Linux

Instal dan Konfigurasikan Haproxy di RHEL 8 / CENTOS 8 Linux

Haproxy atau proxy ketersediaan tinggi adalah TCP open source dan http load balancer dan perangkat lunak server proxy. Haproxy telah ditulis oleh Willy Tarreau di C, mendukung SSL, kompresi, format log khusus, log khusus dan penulisan ulang header. Haproxy adalah server proxy yang cepat dan ringan dan penyeimbang beban dengan jejak memori kecil dan penggunaan CPU rendah. Ini digunakan oleh situs besar seperti GitHub, Stackoverflow, Reddit, Tumblr, Twitter dan lainnya. Ini telah menjadi penyeimbang beban perangkat lunak dan server proxy yang paling populer dalam beberapa tahun terakhir.

Dalam tutorial ini, Anda akan melewati instalasi dan konfigurasi Haproxy di RHEL 8 / CentOS 8. Kami akan menginstal Huraproxy pada satu server dan kemudian menginstal Nginx Web Server di server lain. Haproxy akan bertindak sebagai penyeimbang beban untuk server web nginx.

Dalam tutorial ini Anda akan belajar:

  • Arsitektur dan konsep Haproxy
  • Konfigurasikan file host untuk resolusi nama
  • Instal dan konfigurasikan Haproxy
  • Instal dan konfigurasikan nginx
  • Menguji fitur penyeimbangan beban
  • Akses URL Statistik Haproxy

Arsitektur Haproxy.

Persyaratan dan konvensi perangkat lunak yang digunakan

Persyaratan Perangkat Lunak dan Konvensi Baris Perintah Linux
Kategori Persyaratan, konvensi atau versi perangkat lunak yang digunakan
Sistem Rhel 8 / Centos 8
Perangkat lunak Haproxy, nginx
Lainnya Akses istimewa ke sistem Linux Anda sebagai root atau melalui sudo memerintah.
Konvensi # - mensyaratkan perintah linux yang diberikan untuk dieksekusi dengan hak istimewa root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo memerintah
$ - mensyaratkan perintah Linux yang diberikan untuk dieksekusi sebagai pengguna biasa

Arsitektur dan konsep Haproxy

Haproxy dapat berjalan dalam dua mode: TCP Mode Layer 4 dan HTTP Mode Layer 7. Dalam mode TCP Layer 4, Haproxy meneruskan paket TCP mentah dari klien ke server aplikasi. Dalam mode HTTP Layer 7, Haproxy mem -parsing header HTTP sebelum meneruskannya ke server aplikasi. Dalam tutorial ini, kami akan menggunakan NGINX sebagai server web yang mendukung mode HTTP Layer 7.

Lapisan 4 Load Balancing. Lapisan 7 Load Balancing.



Algoritma Balance adalah algoritma yang digunakan oleh Haproxy untuk memilih server saat melakukan penyeimbangan beban. Mode berikut tersedia:

Roundrobin

Ini adalah algoritma keseimbangan yang paling sederhana. Untuk setiap koneksi baru, itu akan ditangani oleh server backend berikutnya. Jika server backend terakhir dalam daftar tercapai, itu akan dimulai lagi dari daftar backend atas.

Terkecil

Koneksi baru akan ditangani oleh server backend dengan jumlah koneksi paling sedikit. Ini berguna ketika waktu dan beban permintaan sangat bervariasi.

Sumber

Ini untuk sesi lengket, IP klien akan hash untuk menentukan server backend yang menerima permintaan terakhir dari IP ini. Jadi IP A akan selalu ditangani oleh backend1, dan IP B akan selalu ditangani oleh Banckend2 untuk tidak mengganggu sesi.

Konfigurasikan file host untuk resolusi nama

Masuk ke server Load Balancer dan edit /etc/host File dan Haproxy LoadBalancer, Nginx1, Nginx2 HostNames. Salin file yang sama pada dua node Nginx lainnya dan periksa konektivitas jaringan melalui ping comand.

# vim /etc /host
 192.168.1.108 LoadBalancer.contoh.com 192.168.1.104 nginx1.contoh.com 192.168.1.105 nginx2.contoh.com 
Menyalin

Instal dan konfigurasikan Haproxy

Haproxy tersedia di repositori RHEL 8 / CentOS 8, maka masuk ke server LoadBalancer dan instal paket Haproxy dengan perintah yum ini.

# yum instal haproxy

Setelah berhasil diinstal, Anda dapat menggunakan perintah di bawah ini untuk memverifikasi instalasi.

# yum info haproxy
# Yum Info Haproxy Memperbarui Repositori Manajemen Langganan. Memperbarui repositori manajemen berlangganan. Pemeriksaan Kedaluwarsa Metadata Terakhir: 0:06:03 yang lalu pada Sabtu 16 Mar 2019 11:40:24 PM +04. Nama Paket Terpasang: Versi Haproxy: 1.8.14 rilis: 1.EL8 Arch: x86_64 Ukuran: 4.Sumber 1 m: Haproxy-1.8.14-1.EL8.SRC.RPM Repo: @System dari repo: rhel-8-for-x86_64-appstream-beta-rpms Ringkasan: Haproxy Reverse Proxy untuk lingkungan ketersediaan tinggi URL: http: // www.Haproxy.Org/ Lisensi: GPLV2+ Deskripsi: Haproxy adalah proxy terbalik TCP/ HTTP yang sangat cocok untuk tinggi: lingkungan ketersediaan. Memang dapat :: - Rute permintaan http tergantung pada cookie yang ditugaskan secara statis: - menyebarkan beban di antara beberapa server sambil memastikan persistensi server: Melalui penggunaan cookie http: - beralih ke server cadangan jika ada yang gagal: - menerima koneksi ke port khusus yang didedikasikan untuk pemantauan layanan: - Berhenti menerima koneksi tanpa merusak yang sudah ada: - Tambah, modifikasi, dan hapus header HTTP di kedua arah: - Blok Permintaan Pencocokan Pola Khusus: - Laporkan status terperinci ke pengguna yang diautentikasi dari URI: dicegat dari aplikasi 

Saat instalasi selesai, buka /etc/haproxy/ direktori dan cadangan file konfigurasi asli.



# CD/etc/haproxy/ # CP Haproxy.Haproxy CFG.CFG.Orig 

Selanjutnya, lakukan perubahan di bawah ini dalam file konfigurasi Haproxy Haproxy.CFG dengan editor salah satu.

#------------------------------------------------- -------------------- # Contoh Konfigurasi untuk kemungkinan aplikasi web. Lihat # Opsi Konfigurasi Lengkap Online. # # https: // www.Haproxy.org/download/1.8/doc/konfigurasi.txt # #----------------------------------------------- ---------------------- #--------------------------- ------------------------------------------ # Pengaturan global #---- -------------------------------------------------- --------------- Global # agar pesan-pesan ini berakhir di/var/log/haproxy.Log Anda akan # perlu: # # 1) Mengkonfigurasi syslog untuk menerima acara log jaringan. Ini dilakukan # dengan menambahkan opsi '-r' ke syslogd_options di #/etc/sysconfig/syslog # # 2) Mengkonfigurasi acara Local2 untuk pergi ke/var/log/haproxy.File Log #. Baris seperti berikut ini dapat ditambahkan 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 Group Haproxy Daemon # Nyala Statistik Unix Socket Socket/Var/Lib/Haproxy/Stats # Memanfaatkan Profil Sysl-Default-Policies Crypto-Ciphers SSL-Default-Bind-Ciphers = Sistem #----------------------------------------------- ---------------------- # Default umum bahwa semua bagian 'dengarkan' dan 'backend' akan # gunakan jika tidak ditunjuk di blok mereka # ---- -------------------------------------------------- --------------- Mode default HTTP LOG Opsi Global Opsi httplog Opsi DontLognull Opsi http-server-close opsi Forping for kecuali 127.0.0.0/8 Opsi Redispatch Retries 3 Timeout http-request 10s timeout antrian 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-mondar-mandir 10s timeout check 10s maxconn 3000 #---------- -------------------------------------------------- ------ # Haproxy Monitoring Config # ----------------------------------- ------------------------------ Dengarkan Statistik Bind LoadBalancer.contoh.com: 8080 # pemantauan haproxy dijalankan pada port 8080 mode http opsi depan untuk opsi httpclose stats memungkinkan statistik show-legends stats refresh 5s stats uri /stats # url untuk pemantauan haproxy stats realm haphaproxy \ statistik statistik admin: admin # user dan kata sandi untuk logrok haphaproxy \ statistik auths auth: admin # user dan kata sandi untuk LOUGIN \ Statistics Statistics Auth. Admin: Admin # Pengguna dan Kata Sandi untuk Login ke Dasbor Pemantauan #Stats Admin Jika True Default_Backend LoadBalancer #Ini opsional untuk memantau backend #------------------------------- -------------------------------------- # Frontend Utama Yang Proxys ke Backends # --- -------------------------------------------------- ---------------- Frontend LoadBalancer mengikat loadbalancer.contoh.com: 80 #acl url_static path_beg -i /static /gambar /javascript /stylesheets #aCl url_static path_end -i .jpg .gif .png .CSS .JS #USE_BACKEND STATIC Jika opsi URL_STATIC http-server-close opsi Forward Untuk default_backend loadbalancer #--------------------------------- ------------------------------------ # Backend Static untuk Melayani Gambar, Stylesheets dan #-- -------------------------------------------------- ----------------- #Backend Static # Balance Roundrobin # Server Static 127.0.0.1: 4331 Periksa #--------------------------------------------- ------------------------ # round robin menyeimbangkan antara berbagai backends # ----------------- -------------------------------------------------- - Backend LoadBalancer Balance Roundrobin # Opsi Algoritma Saldo Httpchk Head / http / 1.1 \ r \ nhost: \ localhost # Periksa aplikasi server sudah naik dan healty - 200 kode status server nginx1.contoh.com 192.168.1.104: 80 Periksa # Nginx Server1 Server Nginx2.contoh.com 192.168.1.105: 80 Periksa # NGNIX Server2 

Simpan file konfigurasi ini dan keluar.

Sekarang, kami akan mengkonfigurasi daemon rsyslog untuk mencatat statistik haproxy. Edit rsyslog.conf file untuk mengaktifkan port UDP 514 untuk digunakan oleh rsyslog. Buka file konfigurasi rsyslog dan unkromment baris untuk mengaktifkan koneksi UDP.

# vim /etc /rsyslog.conf
modul (muat = "imudp") # perlu dilakukan hanya sekali input (type = "imudp" port = "514") 

Simpan file dengan perubahan di atas dan keluar. Kemudian buat file konfigurasi Huraproxy baru untuk rsyslog dan tambahkan entri di bawah ini dalam file itu.

# CD /etc /rsyslog.d/ # vi Haproxy.conf 
local2.= info/var/log/haproxy-access.Log # untuk Access Log Local2.PEMBERITAHUAN/VAR/LOG/HAPROXY-INFO.Log # untuk info layanan - Backend, LoadBalancer 

Sekarang restart rsyslog dan kemudian mulai layanan Haproxy dan tambahkan Haproxy untuk memulai pada waktu boot.

# Systemctl restart rsyslog # systemctl Mulai haproxy # systemctl Aktifkan Haproxy 

Instal dan konfigurasikan nginx

Nginx sudah menjadi bagian dari repo RHEL 8 / CentOS 8 yang ada dan dapat diinstal dengan perintah berikut.

# yum instal nginx

Setelah diinstal, Anda dapat memverifikasi instalasi dengan bantuan perintah ini.

# yum info nginx


# yum info nginx memperbarui repositori manajemen berlangganan. Memperbarui repositori manajemen berlangganan. Pemeriksaan Kedaluwarsa Metadata Terakhir: 0:06:14 yang lalu pada Sabtu 16 Mar 2019 11:40:24 PM +04. Nama Paket Terpasang: Nginx Epoch: 1 Versi: 1.14.0 Rilis: 3.EL8+1631+BA902CF0 Arch: x86_64 Ukuran: 568 K Sumber: nginx-1.14.0-3.EL8+1631+BA902CF0.SRC.RPM REPO: RHEL-8-FOR-X86_64-APPSTREAM-BETA-RPMS Ringkasan: Server web berkinerja tinggi dan server proxy terbalik URL: http: // nginx.org/ lisensi: BSD Deskripsi: Nginx adalah server web dan server proxy terbalik untuk protokol HTTP, SMTP, POP3 dan: IMAP, dengan fokus yang kuat pada konkurensi tinggi, kinerja dan penggunaan memori yang tinggi:. 

Setelah nginx diinstal, buka direktori web dan ubah indeks.html file sesuai. Pastikan Anda melakukan langkah di bawah ini pada server Nginx1 dan Nginx2.

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

Selanjutnya, tambahkan nginx untuk memulai pada waktu boot dan kemudian mulai daemon dengan perintah di bawah ini.

# Systemctl Aktifkan Nginx # Systemctl Mulai Nginx 

Menguji fitur penyeimbangan beban

Pengujian dapat dilakukan dengan meramban dan mengakses IP Loadbalancer 192.168.1.108 (untuk kasus saya) dan Anda akan melihat satu kali pergi ke Nginx Node1 dan kedua kalinya pergi ke Nginx Node2 dengan cara round robin.

Halaman web di Nginx Node1. Halaman web di Nginx Node2.

Anda juga dapat memeriksa /var/log/haproxy-access.catatan untuk mendapatkan informasi detail tentang penyeimbangan beban.

Akses URL Statistik Haproxy

Akses Dasbor untuk Laporan Statistik Haproxy yang berjalan di port 8080 dengan nama pengguna dan kata sandi yang ditentukan dalam Haproxy.CFG mengajukan.



http: // 192.168.1.108: 8080/statistik
Akses URL Statistik Haproxy. Dasbor Statistik Haproxy.

Haproxy bekerja dengan sukses dan bertindak sebagai penyeimbang beban untuk dua server web nginx.

Kesimpulan

Haproxy atau Proxy Ketersediaan Tinggi adalah perangkat lunak open source yang menyediakan ketersediaan tinggi untuk layanan berbasis TCP, beroperasi sebagai penyeimbang beban http dan server proxy. Perangkat lunak ini ditulis dalam C dan mendukung SSL, Keep-Alive dan Compression. Haproxy adalah pilihan yang tepat untuk semua orang yang membutuhkan penyeimbang beban dan server proxy yang cepat dan ringan dengan jejak memori kecil dan penggunaan CPU rendah. Haproxy dapat berjalan dalam mode TCP Layer 4 dan Mode Layer 7 HTTP. Nginx hanya mendukung mode HTTP Layer 7 dengan Haproxy. Jika Anda ingin menggunakan Mode Lapisan 4 TCP, Anda dapat menggunakan server web lain seperti Apache. Pada RHEL 8 / Centos 8 Linux, Haproxy tersedia di repositori default. Mudah untuk menginstal dan mengonfigurasi.

Tutorial Linux Terkait:

  • Pengantar Otomatisasi Linux, Alat dan Teknik
  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Menguasai loop skrip bash
  • Mint 20: Lebih baik dari Ubuntu dan Microsoft Windows?
  • Membandingkan Linux Apache Prefork vs Pekerja MPM
  • Ubuntu 20.04 WordPress dengan Instalasi Apache
  • Ubuntu 20.04: WordPress dengan instalasi nginx
  • Unduh Linux
  • Buat redirect dan tulis ulang aturan ke .htaccess di Apache…
  • Seberapa sering Anda harus me -reboot server linux Anda?