Jika web server Anda tergolong web server yang super sibuk dengan beban akses atau hit yang besar, maka performa dan kinerja dari web server Anda dituntut maksimal. Cara paling mudah untuk menyediakan web server dengan performa dan kinerja maksimal adalah menggunakan perangkat keras dengan spesifikasi yang tinggi. Tentunya hal ini membutuhkan investasi yang cukup mahal karena sampai saat ini korelasinya masih linear antara performa dan kinerja yang tinggi dari suatu perangkat komputer dengan biaya atau harganya.

Namun solusi dengan pengadaan upgrade perangkat keras hanya akan bertahan dalam jangka pendek, karena bisa jadi peningkatan akses ke web server Anda akan bertambah dengan cepat sementara perangkat keras belum dapat segera diupgrade. Belum lagi permasalahan lain yang juga akan muncul saat dilakukan upgrade perangkat keras, seperti pengaruhnya terhadap perangkat lunak yang sedang digunakan saat ini.

Jika demikian adakah solusinya? Salah satu solusi untuk menjamin performa dan kinerja dari web server tetap baik adalah menggunakan teknik cluster. Ada berbagai teknik cluster saat ini, namun dalam artikel kali ini penulis hanya akan membahas teknik cluster web server dengan menggunakan teknik loadbalancer (pembagi
beban) pada web server Apache dengan menggunakan modul mod_proxy_balancer.

Seperti apakah kiranya teknik tersebut ?. Pada teknik loadbalancer ini, terdiri dari minimal sebuah web server yang berperan sebagai loadbalancer dengan dua atau lebih web server real (backend web server). Pada
teknik cluster web server menggunakan loadbalancer, user mengakses web server yang berperan sebagai loadbalancer, kemudian loadbalancer akan mengambil halaman web yang diminta oleh user dari dua atau lebih backend web server dan kemudian memberikannya kepada user.

Dengan menggunakan loadbalancer, Anda dapat menurunkan beban rata­rata pada web server. Salah satu fitur
penting dari mod_proxy_balancer adalah dapat melacak session yang berarti satu pengguna selalu berurusan dengan sebuah backend web server, hal ini menjaga konsistensi session pada saat mengakses halaman web sehingga kejadian yang tidak diaharapkan seperti user beberapa kali kehilangan session sehingga harus login lagi untuk menciptakan sesion baru dapat dihindari. Dengan teknik loadbalancer ini memang kita harus menyediakan beberapa mesin komputer yang akan difungsikan sebagai loadbalancer, dan backend web server. Namun kita masih dapat menggunakan spesifikasi mesin komputer yang tidak terlalu tinggi sehingga kita mungkin masih dapat menggunakan mesin komputer yang sudah ada.

Pada artikel kali ini penulis akan menjelaskan secara singkat dan praktis tentang bagaimana menerapkan loadbalancer web server menggunakan web server apache dengan modul mod_proxy_balancer. Penulis menggunakan sistem operasi Linux CentOS 5 dan Apache 2.2.3 untuk web server loadbalancer, dan penulis menggunakan dua backend web server yang masing­ masing menggunakan sistem operasi Linux CentOS 5.2 dan Fedora Core 6 serta web server Apache bawaan masing­masing distro.

Skenario
Untuk mempermudah pembaca dalam memahami penjelasan ini maka penulis mengilsutrasikan
skenario jaringan cluster web server sebagaimana yang dapat dilihat pada gambar­1. Terdapat sebuah
frontend web server sebagai loadbalancer dan terdapat dua buah backend web server sebagai real
server. Loadbalancer memiliki nama host www.latihan.com, dan kedua buah backend web server memiliki nama
http1.latihan.com dan http2.latihan.com.

User dari internet ketika mengakses website www.latihan.com maka sesungguhnya akses tersebut direspon oleh loadbalancer dengan mengambilkan halaman website dari backend web server dan memberikannya ke user. Dalam skenario ini Website atau aplikasi web yang terdapat pada cluster web server merupakan website atau
aplikasi web yang menggunakan PHP Sessions (database­driven web aplication).

Konfigurasi Backend web server

Langkah pertama adalah kita mempersiapkan backend web server atau real server http1.latihan.com
dan http2.latihan.com. Pada kedua backend web server menggunakan web server Apache dengan
dukungan modul mod_rewrite. Pada masing­masing backend web server kita edit file konfigurasi apache (/etc/httpd/conf/httpd.conf) pada konfigurasi virtualhost masing­masing backend web server kita tambahkan entri konfigurasi direktif RewriteEngine dan RewriteRule untuk mendukung pelacakan session .

Untuk konfigurasi web server http1.latihan.com sebagai berikut:
NameVirtualHost *:80

ServerName http1.latihan.com
DocumentRoot /var/www/http1
RewriteEngine On
RewriteRule .* – [CO=BALANCEID:balancer.http1:.latihan.com]

Selanjutnya restart service apache httpd pada komputer http1.latihan.com, seperti berikut ini:
[root@http1 ~]# service httpd restart

Untuk konfigurasi web server http2.latihan.com sebagai berikut:
NameVirtualHost *:80

ServerName http2.latihan.com
DocumentRoot /var/www/http2
RewriteEngine On
RewriteRule .* – [CO=BALANCEID:balancer.http2:.latihan.com]

Selanjutnya restart service apache httpd pada komputer http2.latihan.com, seperti berikut ini:
[root@http2 ~]# service httpd restart

Konfigurasi Loadbalancer
Langkah berikutnya kita mengkonfigurasi web server www.latihan.com untuk dijadikan sebagai loadbalancer. Untuk itu kita membutuhkan web server apache yang sudah memiliki dukungan akan modul mod_proxy_balancer. Umumnya apache web server yang tersedia diberbagai distro linux sudah dilengkapi dengan dukungan modul mod_proxy_balancer. Selanjutnya lakukan konfigurasi apache web server untuk loadbalancer (diasumsikan pada web server www.example.com tidak menjalankan website­website lain kecuali hanya website www.example.com.

Berikut ini contoh konfigurasi loadbalancer web server www.example.com :
NameVirtualHost *:80

ServerName www.latihan.com
ServerAlias latihan.com
DocumentRoot /var/www/
ProxyRequests Off
Order deny,allow
Allow from all
ProxyPass /balancer-manager !
ProxyPass / balancer://mycluster/ stickysession=BALANCEID
nofailover=Off
ProxyPassReverse / http://http1.latihan.com/
ProxyPassReverse / http://http2.latihan.com/
BalancerMember http://http1.latihan.com route=http1
BalancerMember http://http2.latihan.com route=http2
ProxySet lbmethod=byrequests

SetHandler balancer-manager
Order deny,allow
Allow from all
Pada konfigurasi loadbalancer terdapat konfigurasi , untuk itu kita harus membuat direktori balancer­manager pada direktori /var/www/.
[root@www ~]#mkdir /var/www/balancer-manager

Untuk keamanan, lokasi /balancer-manager sebaiknya dibatasi pengaksesannya yaitu dengan menerapkan otentikasi atau dengan membatasi dari ip tertentu saja yang boleh mengakses dengan mengubah direktif
“Allow from All” menjadi “Allow from 127.0.0.1 192.168.1.0/24”.

Jangan lupa selanjutnya untuk merestart web server apache pada www.latihan.com sebagai berikut:
[root@www ~]# service httpd restart

Sampai disini konfigurasi loadbalancer dan kedua backend web server sudah selesai, Anda tinggal
mencobanya dengan mengakses ke www.latihan.com

 

oleh Henry Saptono, Pengajar Tetap STT Terpadu Nurul Fikri [henry@nurulfikri.ac.id]

Share