Menyiapkan Penyeimbangan Beban Server Web Menggunakan 'POUND' di RHEL/CentOS
POUND adalah program penyeimbangan beban yang dikembangkan oleh Perusahaan ITSECURITY. Ini adalah alat proksi terbalik sumber terbuka ringan yang dapat digunakan sebagai penyeimbang beban server web untuk mendistribusikan beban di antara beberapa server. Ada beberapa keuntungan yang diberikan POUND kepada pengguna akhir yang sangat nyaman dan melakukan pekerjaan dengan benar.
- Mendukung host virtual.
- Dapat dikonfigurasi.
- Ketika server backend gagal atau pulih dari kegagalan, server akan mendeteksinya secara otomatis dan mendasarkan keputusan penyeimbangan beban berdasarkan hal tersebut.
- Ini menolak permintaan yang salah.
- Tidak ada browser atau server web tertentu.
Mari kita lihat bagaimana cara melakukan peretasan ini.
Pertama-tama, Anda memerlukan skenario untuk pemahaman yang lebih baik tentang cara menyelesaikan hal ini. Jadi saya akan menggunakan skenario di mana ada dua server web dan satu server gateway yang perlu menyeimbangkan permintaan yang datang ke server gateway ke server web.
Pound Gateway Server : 172.16.1.222
Web Server 01 : 172.16.1.204
Web Server 02 : 192.168.1.161
Langkah1: Instal Pound Load Balancer di Server Gateway
1. Cara termudah untuk menginstal Pound adalah menggunakan paket RPM yang telah dikompilasi sebelumnya, Anda dapat menemukan RPM untuk distribusi berbasis RedHat di:
- http://www.invoca.ch/pub/packages/pound/
Alternatifnya, Pound dapat dengan mudah diinstal dari repositori EPEL seperti yang ditunjukkan di bawah ini.
yum install epel-release
yum install Pound
Setelah Pound diinstal, Anda dapat memverifikasi apakah Pound diinstal dengan mengeluarkan perintah ini.
rpm –qa |grep Pound
2. Kedua, Anda memerlukan dua server web untuk menyeimbangkan beban dan memastikan Anda memiliki pengidentifikasi yang jelas untuk menguji konfigurasi pound berfungsi dengan baik.
Di sini saya memiliki dua server dengan alamat IP 172.16.1.204 dan 192.168.1.161.
Untuk kemudahan penggunaan, saya telah membuat python SimpleHTTPServer untuk membuat server web instan di kedua server. Baca tentang python SimpleHTTPServer
Dalam skenario saya, webserver01 saya berjalan di 172.16.1.204 melalui port 8888 dan webserver02 berjalan di 192.168.1.161 melalui port 5555.
Langkah 2: Konfigurasikan Pound Load Balancer
3. Sekarang saatnya melakukan konfigurasi. Setelah Anda berhasil menginstal pound, file konfigurasi pound akan dibuat di /etc, yaitu pound.cfg
.
Kami harus mengedit detail server dan backend untuk menyeimbangkan beban di antara server web. Buka /etc dan buka file pound.cfg
untuk diedit.
vi /etc/pound.cfg
Lakukan perubahan seperti yang disarankan di bawah ini.
ListenHTTP
Address 172.16.1.222
Port 80
End
ListenHTTPS
Address 172.16.1.222
Port 443
Cert "/etc/pki/tls/certs/pound.pem"
End
Service
BackEnd
Address 172.16.1.204
Port 8888
End
BackEnd
Address 192.168.1.161
Port 5555
End
End
Seperti inilah tampilan file pound.cfg saya.
Di bawah tag “ListenHTTP ” dan “ListenHTTPS ”, Anda harus memasukkan alamat IP server tempat Anda menginstal POUND.
Secara default, server menangani permintaan HTTP melalui port 80 dan permintaan HTTPS melalui port 443. Di bawah tag “Layanan ”, Anda dapat menambahkan sub tag berapa pun yang disebut “BackEnd ”. Tag BackEnd memuat alamat IP dan nomor port tempat server web dijalankan.
Sekarang simpan file setelah mengeditnya dengan benar dan mulai ulang layanan POUND dengan mengeluarkan salah satu perintah di bawah ini.
/etc/init.d/pound restart
OR
service pound restart
OR
systemctl restart pound.service
4. Sekarang waktunya memeriksa. Buka dua browser web untuk memeriksa apakah konfigurasi kami berfungsi dengan baik. Di bilah alamat, ketik alamat IP gateway POUND Anda dan lihat apa yang muncul.
Permintaan pertama harus memuat webserver01 pertama dan permintaan kedua dari browser web lain harus memuat webserver02 kedua.
Selanjutnya, pikirkan skenario seperti jika Anda memiliki dua server web untuk menyeimbangkan beban dan salah satu server berkinerja baik dan kinerja lainnya tidak begitu baik.
Jadi ketika melakukan penyeimbangan beban di antara mereka, Anda harus mempertimbangkan server mana yang harus Anda bebankan lebih banyak. Tentunya untuk server dengan spek performa yang baik.
Untuk menyeimbangkan beban seperti itu, Anda hanya perlu menambahkan satu parameter di dalam file pound.cfg
. Mari kita lihat.
Menurut Anda server 192.168.1.161:5555 adalah server yang lebih baik. Maka Anda perlu memasukkan lebih banyak aliran permintaan ke server itu. Di bawah tag “BackEnd ” yang dikonfigurasi untuk server 192.168.1.161, tambahkan parameter “Priority ” sebelum tag Akhir.
Lihat contoh di bawah ini.
Rentang yang dapat kita gunakan untuk parameter “Prioritas ” adalah antara 1-9. Jika kami tidak mendefinisikannya, nilai default 5 akan ditetapkan.
Maka beban akan seimbang secara merata. Jika kita menentukan nomor Prioritas, POUND akan lebih sering memuat server dengan nomor prioritas lebih tinggi. Jadi dalam hal ini, 192.168.1.161:5555 akan lebih sering dimuat dibandingkan server 172.16.1.204:8888.
Langkah 3: Merencanakan Perincian Darurat
Tag Darurat: Tag ini digunakan untuk memuat server jika semua server ujung belakang mati. Anda dapat menambahkannya sebelum tag Akhir terakhir pound.cfg sebagai berikut.
“Emergency
Address 192.168.5.10
Port 8080
End”
6. POUND selalu melacak server backend mana yang aktif dan mana yang tidak. Kita dapat menentukan berapa detik POUND harus melakukan checkout pada server backend dengan menambahkan parameter “Alive ” di pound.cfg.
Anda dapat menggunakan parameter sebagai “Alive 30 ” untuk menyetelnya ke 30 detik. Pound untuk sementara akan menonaktifkan server backend yang tidak merespons. Ketika kami mengatakan server tidak merespons mungkin mati atau tidak dapat membuat koneksi pada saat itu.
POUND akan memeriksa server backend yang dinonaktifkan setelah setiap periode waktu yang Anda tetapkan dalam file pound.cfg jika server dapat membuat sambungan, maka POUND dapat kembali bekerja dengan server.
7. Daemon POUND akan ditangani oleh perintah poundctl. Dengan demikian kita tidak perlu mengedit file pound.cfg dan kita dapat menerbitkan Server Listner, server dan sesi BackEnd, dll. melalui satu perintah.
Syntax: poundctl -c /path/to/socket [-L/-l] [-S/-s] [-B/-b] [-N/-n] [-H] [-X]
- -c menentukan jalur ke soket Anda.
- -L/-l mendefinisikan pendengar arsitektur Anda.
- -S/-s mendefinisikan layanan.
- -B/-b mendefinisikan server backend.
Lihat halaman manual poundctl untuk informasi lebih lanjut.
Semoga Anda menikmati peretasan ini dan menemukan lebih banyak opsi mengenai ini. Jangan ragu untuk berkomentar di bawah untuk saran dan ide apa pun. Tetap terhubung dengan Tecmint untuk Cara praktis dan terbaru.
Baca Juga: Memasang Load Balancer XR Crossroads untuk Server Web