HAProxy singkatan dari High Availability Proxy, ini adalah alat penyeimbang beban sumber terbuka dan gratis yang memungkinkan untuk menyeimbangkan lalu lintas masuk (TCP dan berbasis HTTP ) dengan mendistribusikan di seluruh server backend menggunakan kriteria yang berbeda.
Dengan kata lain, kita dapat mengatakan HAProxy digunakan untuk memberikan toleransi kesalahan dan ketersediaan tinggi jika satu node mendapatkan terlalu banyak permintaan bersamaan. Ini digunakan oleh sebagian besar situs web terkenal seperti GitHub, Stack Overflow, dan Tumbler.
Pada artikel ini, kita akan membahas cara menginstal dan mengkonfigurasi HAProxy pada CentOS 8/RHEL 8 untuk Server Web Nginx. Berikut adalah detail untuk setup lab haproxy saya,
- Server HAProxy – 192.168.1.10 (haproxy-centos8)
- Nginx Server 1 – 192.168.1.11 (nginx-node01)
- Nginx Server 2 – 192.168.1.12 (nginx-node01)
Mari masuk ke langkah instalasi dan konfigurasi HAProxy di CentOS 8 / RHEL 8
Langkah:1) Perbarui file /etc/hosts Server HAProxy Anda
Login ke sistem CentOS 8 atau RHEL 8 Anda di mana Anda akan menginstal haproxy, tambahkan baris berikut di file /etc/hosts,
192.168.1.10 haproxy-centos8 192.168.1.11 nginx-node01 192.168.1.12 nginx-node02
Setelah memperbarui file host, pastikan Anda dapat melakukan ping ke node Nginx,
Langkah:2) Instal dan Konfigurasi HAProxy di CentOS 8 / RHEL 8
Paket haproxy tersedia di repositori paket default CentOS 8 dan RHEL 8, sehingga dapat dengan mudah diinstal dengan perintah dnf. Tetapi disarankan untuk memperbarui sistem Anda sebelum menginstal haproxy. Jadi jalankan perintah berikut,
[email protected] ~]# dnf update -y [email protected] ~]# reboot
Sekarang gunakan perintah dnf berikut untuk menginstal haproxy,
[[email protected] ~]# dnf install haproxy
Setelah haproxy berhasil diinstal, konfigurasikan dengan mengedit file konfigurasinya “/etc/haproxy/haproxy.cfg “.
Sebelum mengedit file, itu selalu merupakan praktik yang baik untuk membuat cadangan file asli, jalankan perintah berikut,
[[email protected] ~]# cd /etc/haproxy/ [[email protected] haproxy]# cp haproxy.cfg haproxy.cfg-org [[email protected] haproxy]#
Dalam file konfigurasi, kami akan memodifikasi dua bagian frontend dan backend . Di bagian Frontend kita mendefinisikan IP haproxy dan port-nya, stats uri dan nama backend. Di bagian Backend, kami menentukan jenis algoritme keseimbangan beban yang akan kami gunakan seperti round robin &koneksi terkecil, dll., serta nama, IP, dan port server backend, contohnya ditunjukkan di bawah ini,
[[email protected] haproxy]# vi haproxy.cfg ………………… frontend http_balancer bind 192.168.1.10:80 option http-server-close option forwardfor stats uri /haproxy?stats # acl url_static path_beg -i /static /images /javascript /stylesheets # acl url_static path_end -i .jpg .gif .png .css .js # use_backend static if url_static default_backend nginx_webservers backend nginx_webservers mode http balance roundrobin option httpchk HEAD / HTTP/1.1\r\nHost:\ localhost server nginx-node01 192.168.1.11:80 check server nginx-node02 192.168.1.12:80 check ………………………………
Simpan dan keluar dari file
Konfigurasi rsyslog agar menyimpan semua statistik HAProxy, edit file konfigurasi rsyslog “/etc/rsyslog.conf ” dan batalkan komentar pada baris 19 dan 20,
[[email protected] ~]# vi /etc/rsyslog.conf …… module(load="imudp") input(type="imudp" port="514") ……
Simpan dan keluar dari file.
Sekarang buat file haproxy.conf untuk rsyslog , rekatkan baris berikut,
[[email protected] ~]# vi /etc/rsyslog.d/haproxy.conf local2.=info /var/log/haproxy-access.log local2.notice /var/log/haproxy-info.log
simpan dan keluar dari file
Mulai ulang dan aktifkan layanan rsyslog sehingga akan tersedia di seluruh reboot
[[email protected] ~]# systemctl restart rsyslog [[email protected] ~]# systemctl enable rsyslog
Sekarang akhirnya mulai haproxy tetapi sebelum memulai layanan haproxy, setel aturan selinux berikut,
[[email protected] ~]# setsebool -P haproxy_connect_any 1
Mulai &aktifkan haproxy menggunakan perintah di bawah systemctl
[[email protected] ~]# systemctl start haproxy [[email protected] ~]# systemctl enable haproxy
Izinkan port haproxy (dalam kasus kami adalah 80) di firewall OS, jalankan perintah di bawah firewall-cmd,
[[email protected] ~]# firewall-cmd --permanent --add-port=80/tcp [[email protected] ~]# firewall-cmd --reload
Sampai sekarang instalasi HAProxy dan bagian konfigurasi selesai mari kita pindah ke node Nginx,
Langkah:3) Instal NGINX dan mulai layanannya
Login ke kedua node nginx, instal nginx dan mulai layanannya menggunakan perintah berikut.
# dnf install nginx -y # systemctl start nginx # systemctl enable nginx
Mari kita ubah file index.html dari masing-masing node,
Untuk nginx-node01
[[email protected] ~]# cd /usr/share/nginx/html [[email protected] html]# echo "Nginx Node01 - Welcome to First Nginx Web Server" > index.html
Untuk nginx-node02
[[email protected] ~]# cd /usr/share/nginx/html [[email protected] html]# echo "Nginx Node02 - Welcome to 2nd Nginx Web Server" > index.html
Izinkan port Nginx (80) di firewall OS di kedua node menggunakan perintah di bawah ini,
# firewall-cmd --permanent --add-service=http # firewall-cmd --reload
Langkah:4) Uji Apakah HAProxy Anda berfungsi dengan baik atau tidak
Masuk ke server haproxy dan jalankan perintah curl beberapa kali untuk melihat apakah lalu lintas didistribusikan secara round-robin
[[email protected] ~]# curl 192.168.1.10
Sempurna, ini mengonfirmasi bahwa haproxy berfungsi dengan baik karena mendistribusikan lalu lintas antara dua node,
Mari kita verifikasi dari browser Web juga,
Di atas mengonfirmasi bahwa HAProxy telah berhasil dikonfigurasi pada CentOS 8 dan RHEL 8.
Anda dapat melihat status haproxy Anda melalui web browser, ketik url :http://
Dalam kasus kami, URL akan menjadi http://192.168.1.10/haproxy?stats
Kami juga dapat melihat statistik HAProxy dari file log ( /var/log/haproxy-access.log ).
Itu saja dari tutorial ini, semoga langkah-langkah ini membantu Anda untuk mengatur HAProxy di CentOS 8 dan RHEL 8 dengan lancar. Silakan bagikan umpan balik dan komentar Anda yang berharga.
Baca Juga :Cara Menyetel Kerangka Kerja Django Python pada CentOS 8