Cara Mengatur Load Balancer Ketersediaan Tinggi dengan 'HAProxy' untuk Mengontrol Lalu Lintas Server Web


HAProxy adalah singkatan dari proksi Ketersediaan Tinggi. Ini adalah aplikasi gratis dan sumber terbuka yang ditulis dalam Bahasa pemrograman C. Aplikasi HAProxy digunakan sebagai Load Balancer TCP/HTTP dan untuk Solusi proxy. Penggunaan aplikasi HAProxy yang paling umum adalah untuk mendistribusikan beban kerja ke beberapa server misalnya server web, server database, dll sehingga meningkatkan kinerja keseluruhan dan keandalan lingkungan server.

Aplikasi yang sangat efisien dan cepat ini digunakan oleh banyak organisasi terkenal di dunia termasuk namun tidak terbatas pada – Twitter, Reddit, GitHub, dan Amazon. Ini tersedia untuk platform Linux, BSD, Solaris dan AIX.

Dalam tutorial ini, kita akan membahas proses menyiapkan penyeimbang beban ketersediaan tinggi menggunakan HAProxy untuk mengontrol lalu lintas aplikasi berbasis HTTP (server web) dengan memisahkan permintaan di beberapa server.

Untuk artikel ini, kami menggunakan rilis stabil terbaru dari versi HAProxy yaitu 1.5.10 yang dirilis pada tanggal 31 Desember 2014. Dan kami juga menggunakan CentOS 6.5 untuk ini setup, tetapi instruksi yang diberikan di bawah ini juga berfungsi pada distribusi CentOS/RHEL/Fedora dan Ubuntu/Debian.

Pengaturan Lingkungan Saya

Di sini server HAProxy penyeimbang beban kami memiliki nama host sebagai websrv.tecmintlocal.com dengan alamat IP 192.168.0.125.

Pengaturan Server HAProxy
Operating System	:	CentOS 6.5
IP Address		: 	192.168.0.125
Hostname		: 	websrv.tecmintlocal.com
Pengaturan Server Web Klien

Empat mesin lainnya aktif dan berjalan dengan server web seperti Apache.

Web Server #1 :	CentOS 6.5 [IP: 192.168.0.121] - [hostname: web1srv.tecmintlocal.com]
Web Server #2 :	CentOS 6.5 [IP: 192.168.0.122] - [hostname: web2srv.tecmintlocal.com]
Web Server #3 :	CentOS 6.5 [IP: 192.168.0.123] - [hostname: web3srv.tecmintlocal.com]
Web Server #4 :	CentOS 6.5 [IP: 192.168.0.124] - [hostname: web4srv.tecmintlocal.com]

Langkah 1: Menginstal Apache di Mesin Klien

1. Pertama kita harus menginstal Apache di keempat server dan membagikan salah satu situsnya, untuk menginstal Apache di keempat server di sini kita akan menggunakan perintah berikut.

yum install httpd		[On RedHat based Systems]
apt-get install apache2	[On Debian based Systems]

2. Setelah menginstal server web Apache di keempat mesin klien, Anda dapat memverifikasi siapa pun di server apakah Apache berjalan dengan mengaksesnya melalui alamat IP di browser.

http://192.168.0.121

Langkah 2: Menginstal Server HAProxy

3. Di sebagian besar distribusi Linux modern saat ini, HAPRoxy dapat dengan mudah diinstal dari repositori dasar default menggunakan manajer paket default yum atau apt-get .

Misalnya, untuk menginstal HAProxy pada versi RHEL/CentOS/Fedora dan Debian/Ubuntu, jalankan perintah berikut. Di sini saya juga menyertakan paket openssl, karena kita akan menyiapkan HAProxy dengan dukungan SSL dan NON-SSL.

yum install haproxy openssl-devel	[On RedHat based Systems]
apt-get install haproxy		[On Debian based Systems]

Catatan: Pada Debian Whezzy 7.0, kita perlu mengaktifkan repositori backports dengan menambahkan file baru backports.list di bawah direktori “/etc/apt/sources.list.d/” dengan konten berikut.

echo "deb http://cdn.debian.net/debian wheezy-backports main" >> /etc/apt/sources.list.d/backports.list

Selanjutnya, perbarui database repositori dan instal HAProxy.

apt-get update
apt-get install haproxy -t wheezy-backports

Langkah 3: Konfigurasikan Log HAProxy

4. Selanjutnya, kita perlu mengaktifkan fitur logging di HAProxy untuk proses debug di masa mendatang. Buka file konfigurasi HAProxy utama ‘/etc/haproxy/haproxy.cfg‘ dengan editor pilihan Anda.

vim /etc/haproxy/haproxy.cfg

Selanjutnya, ikuti petunjuk khusus distro untuk mengonfigurasi fitur logging di HAProxy.

Di RHEL/CentOS/Fedora

Di bawah #Pengaturan global, aktifkan baris berikut.

log         127.0.0.1 local2
Di Ubuntu/Debian

Di bawah #Pengaturan global, ganti baris berikut,

log /dev/log        local0
log /dev/log        local1 notice 

Dengan,

log         127.0.0.1 local2

5. Selanjutnya, kita perlu mengaktifkan penerimaan syslog UDP di file konfigurasi '/etc/rsyslog.conf' untuk memisahkan file log untuk HAProxy di bawah /var/log direktori . Buka file 'rsyslog.conf' Anda dengan editor pilihan Anda.

vim /etc/rsyslog.conf

Uncommnet ModLoad dan UDPServerRun, Di sini Server kami akan mendengarkan Port 514 untuk mengumpulkan log ke syslog.

Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

6. Selanjutnya, kita perlu membuat file terpisah 'haproxy.conf' di bawah direktori '/etc/rsyslog.d/' untuk mengonfigurasi file log terpisah.

vim /etc/rsyslog.d/haproxy.conf

Tambahkan baris berikut ke file yang baru dibuat.

local2.*	/var/log/haproxy.log

Terakhir, restart layanan rsyslog untuk memperbarui perubahan baru.

service rsyslog restart