A. Yahya Hudan Permana Selamat Membaca ! Semoga bermanfaat Artikel yang kami buat ya !

Instalasi & Konfigurasi HAProxy

jika kamu mempunyai sebuah server kemudian server tersebut memiliki traffic yang sangat besar apakah server kamu dapat memproses data traffic tersebut ? sedangkan kamu sudah tidak memiliki opsi upgrade server ? untuk mengatasi hal tersebut kamu sangat memerlukan HAProxy, artikel ini akan membahas tentang Instalasi & Konfigurasi HAProxy !

Pengertian HAProxy

HAProxy adalah perangkat lunak open source yang berfungsi sebagai load balancer dan reverse proxy. HAProxy digunakan untuk membagi beban trafik antara beberapa server backend yang berjalan di belakangnya, sehingga dapat meningkatkan ketersediaan, skalabilitas, performa, dan keamanan aplikasi.

Selain itu, HAProxy juga dapat melakukan modifikasi permintaan dan respons, melakukan caching, mempercepat waktu respon, serta memantau kesehatan server backend.

HAProxy dapat diintegrasikan dengan berbagai jenis teknologi dan dapat berfungsi sebagai solusi load balancing di berbagai jenis aplikasi dan infrastruktur sistem. HAProxy tersedia dalam versi open source dan enterprise.

Konsep Load Balancing

Cara Kerja HAProxy

HAProxy merupakan sebuah perangkat lunak yang dapat berfungsi sebagai load balancer dan reverse proxy. Cara kerja HAProxy adalah sebagai berikut:

  1. HAProxy menerima permintaan dari client (user/browser) dan meneruskan permintaan tersebut ke server yang sesuai berdasarkan algoritma load balancing yang telah dikonfigurasi.
  2. Sebelum diteruskan ke server yang dituju, HAProxy dapat melakukan modifikasi pada permintaan, seperti menambahkan header kustom, mengubah path atau protokol, atau melakukan validasi input.
  3. Setelah permintaan diteruskan ke server, HAProxy dapat melakukan manajemen koneksi dengan server, seperti mengatur kecepatan koneksi dan mempercepat koneksi dengan mempertahankan koneksi terbuka.
  4. Ketika server memberikan respons, HAProxy menerima respons tersebut dan meneruskannya kembali ke client.
  5. HAProxy juga dapat melakukan caching terhadap respons dari server agar dapat mempercepat waktu respon pada permintaan yang serupa.
  6. Selain itu, HAProxy juga dapat melakukan pemantauan terhadap kesehatan server yang terhubung dan jika server mengalami kegagalan atau tidak responsif, maka HAProxy akan mengarahkan permintaan ke server yang masih aktif atau sehat.
  7. HAProxy juga memiliki fitur SSL offloading, yaitu melepas beban SSL dari server dan memproses SSL pada HAProxy sehingga dapat meningkatkan performa dan keamanan server.

Dengan cara kerja seperti di atas, HAProxy dapat meningkatkan performa, keamanan, dan ketersediaan server serta mengoptimalkan pengalaman pengguna ketika mengakses aplikasi atau website.

Mengapa Harus HAProxy ?

Ada beberapa alasan mengapa sebaiknya kita menggunakan HAProxy dalam infrastruktur sistem, di antaranya:

  1. Load Balancing : HAProxy dapat membagi beban trafik, sehingga mampu mengatur beban lalu lintas dan ketersediaan aplikasi meningkat.
  2. High Availability : mampu memantau server backend, jika ada server yang down maka HAProxy akan mengarahkan lalu lintas ke server yang lain
  3. Scalability : Dengan menggunakan HAProxy, kita dapat menambah atau mengurangi server backend sesuai dengan kebutuhan tanpa memengaruhi pengguna yang menggunakan aplikasi.
  4. Flexibility : HAProxy memiliki fitur yang sangat fleksibel, dapat diintegrasikan dengan berbagai jenis teknologi, seperti server web, server aplikasi, atau server database.
  5. Performance : HAProxy memiliki kemampuan untuk mempercepat waktu respon aplikasi dengan melakukan caching terhadap permintaan dari client, SSL offloading dan optimasi protokol.
  6. Security : HAProxy dapat berfungsi sebagai reverse proxy dan menyembunyikan server backend dari client, sehingga mampu melindungi server backend dari serangan langsung dan meningkatkan keamanan aplikasi.
  7. Monitoring : HAProxy dapat memberikan informasi terkait kinerja aplikasi dan server backend melalui fitur monitoring dan logging yang lengkap.

Dengan menggunakan HAProxy, kita dapat meningkatkan performa, ketersediaan, skalabilitas, keamanan, dan fleksibilitas infrastruktur sistem serta mengoptimalkan pengalaman pengguna ketika mengakses aplikasi atau website.

Persiapan Instalasi

Sebelum memulai proses Instalasi & Konfigurasi HAProxy ada 2 hal yang perlu kamu persiapkan :

  1. Server VPS / VM, kamu bisa order VPS/VM di https://www.cloudaja.id/cloud-vps-indonesia
  2. Domain Aktif, kamu bisa order di https://www.natanetwork.com/harga-domain-internasional atau https://www.natanetwork.com/harga-domain-indonesia

Instalasi HAProxy

Tutorial kali ini akan dilakukan di OS Ubuntu 22.04

  1. Install HAProxy dengan perintah berikut:
    sudo apt-get update
    sudo apt-get install haproxy
  2. Setelah proses instalasi selesai, buka file konfigurasi haproxy.cfg dengan perintah:
    sudo nano /etc/haproxy/haproxy.cfg
  3. Konfigurasi HAProxy untuk membagi beban pada dua server web yang berbeda dengan menambahkan kode berikut pada file haproxy.cfg:
    frontend http-in
    bind *:80
    default_backend servers

    backend servers
    balance roundrobin
    server web1 192.168.0.101:80 check
    server web2 192.168.0.102:80 check

    keterangan :
    • frontend http-in : mengatur pengaturan untuk bagian depan load balancer
    • bind *:80 : mengikat load balancer ke port 80 pada semua alamat IP yang tersedia
    • default_backend servers : menentukan backend default untuk request masuk yang belum diarahkan ke backend tertentu
    • backend servers : mengatur pengaturan untuk backend yang digunakan untuk memproses request yang diterima
    • balance roundrobin : membagi beban secara merata antara server-server yang tersedia
    • server web1 192.168.0.101:80 check : menambahkan server web1 dengan alamat IP 192.168.0.101 dan port 80 sebagai server yang di-load balance, check berarti server akan diuji secara berkala untuk mengetahui apakah masih berfungsi dengan baik
    • server web2 192.168.0.102:80 check : menambahkan server web2 dengan alamat IP 192.168.0.102 dan port 80 sebagai server yang di-load balance.
  4. Setelah melakukan konfigurasi, restart HAProxy dengan perintah:
    sudo systemctl restart haproxy

Dengan melakukan konfigurasi tersebut, HAProxy akan membagi beban pada kedua server web secara merata dan dapat mempercepat pengiriman data dari server ke client.

Konfigurasi HAProxy Stats

Untuk mengetahui status dan performa HAProxy, dapat dilakukan konfigurasi HAProxy stats dengan langkah-langkah berikut:

  1. Buka file konfigurasi haproxy.cfg dengan perintah:
    sudo nano /etc/haproxy/haproxy.cfg
  2. Tambahkan kode berikut pada bagian akhir file haproxy.cfg:
    listen haproxy-stats
    bind :9000
    mode http
    stats enable
    stats hide-version
    stats realm Haproxy\ Statistics
    stats uri /haproxy_stat
    sstats auth username:password


    Keterangan:
    • listen haproxy-stats: mendefinisikan akses ke fitur statistik haproxy
    • bind :9000: mengikat haproxy-stats ke port 9000 pada semua alamat IP yang tersedia
    • mode http: mendefinisikan mode HTTP
    • stats enable: mengaktifkan fitur statistik
    • stats hide-version: menyembunyikan versi haproxy
    • stats realm Haproxy\ Statistics: memberikan pesan otentikasi
    • stats uri /haproxy_stats: mengatur alamat URL untuk akses ke statistik haproxy
    • stats auth username:password: menentukan username dan password untuk mengakses halaman statistik haproxy.
  3. Restart HAProxy dengan perintah:
    sudo systemctl restart haproxy
  4. Akses halaman statistik haproxy dengan membuka browser dan mengakses URL http://[IP_Address_HAProxy]:9000/haproxy_stats dan masukkan username dan password yang telah ditentukan pada konfigurasi sebelumnya.

Dengan melakukan konfigurasi HAProxy stats, kita dapat mengakses halaman statistik haproxy untuk memantau kinerja dan performa HAProxy, seperti jumlah koneksi aktif, permintaan per detik, serta jumlah data yang ditransfer.

A. Yahya Hudan Permana Selamat Membaca ! Semoga bermanfaat Artikel yang kami buat ya !

Leave a Reply

Your email address will not be published. Required fields are marked *