Header Ads

Konfigurasi Load Balancing ( HAProxy ) Web Server ( Nginx ) di Debian 8.11

Assalamu'alaikum wr. wb

Pada Kesempatan kali ini, saya ingin membagikan tutorial mengenai Haproxy dan Nginx di Debian 8.11, oke langsung saja dibaca dan disimak tutorial nya

➤ Materi :
Load Balancing adalah sebuah teknik untuk melakukan distribusi beban trafik pada dua atau lebih jalur koneksi secara seimbang sehingga setiap jalur koneksi akan menerima beban trafik yang sama
Load balancing ini sangat banyak digunakan oleh perusahaan-perusahaan berskala besar. Load Balancing biasanya sering digunakan untuk kebutuhan trafik web yang sangat tinggi seperti web e-commerce. Load balancing biasanya digunakan pada saat sebuah server, jika user yang melakukan akses server tersebut telah melebihi jumlah maksimal, ketika User yang mengakses melebihi kapasitas maka dengan menggunakan teknik load balancing, beban trafik tersebut akan dialihkan ke server yang lain
Berikut adalah alasan mengapa web menggunakan Load balancing :
  1. Dengan menggunakan load balancing kita akan mengurangi error pada sistem, misalnya jika kita mempunyai 3 server, lalu masing-masing server tersebut mempunyai web server yang menjalankan web yang telah kita deploy, karena kita menggunakan load balancing, jika salah satu server mati maka web kita akan tetap berjalan karena server lain akan menghandle request web tersebut
  2. Untuk mempercepat waktu respon sebuah web. Dengan menggunakan teknik load balancing maka yang akan menerima request tidak hanya 1 server, sehingga mempercepat waktu respon. 1 web server dapat menerima banyak request, sedangkan 1 server biasanya kita memiliki 1 web server, bayangkan saja jika kita mempunyai 5 dan masing-masing server mempunyai 1 web server maka waktu respon sebuah web akan meningkat sangat pesat


HAProxy adalah salah satu software yang mendukung load balancing dan proxy untuk protokol TCP dan HTTP
Salah satu keunggulan HAProxy adalah dapat melayani semua port TCP seperti 8080,3000,9000 dan lain-lain
Berikut fitur-fitur dari HAProxy :
  • Jika salah satu server mati, maka beban trafik ke server tersebut akan dihentikan
  • Dapat melakukan load balancing untuk banyak server
  • Dapat digunakan oleh banyak service seperti email, database dan web server
  • Terdapat statistik load balancing sehingga mempermudah kita memantau beban trafik
  • Dapat membuat load balancing master-slave sehingga apabila load balancing yang master maka akan digantikan oleh Slave
Nginx (baca: engine x) adalah server HTTP dan Proxy dengan kode sumber terbuka yang bisa juga berfungsi sebagai proxy IMAP/POP3.
Nginx terkenal karena stabil, memiliki tingkat performansi tinggi dan minim mengonsumsi sumber daya.
Nginx juga memiliki fitur seperti reverse proxy multiple protocols (HTTP, Memcached, PHP‑FPM, SCGI, uwsgi), Stream HTTP video (FLV, HDS, HLS, MP4) serta HTTP/2 gateway.

Beberapa situs terkenal yang menggunakan Nginx adalah Wordpress[2], Fastmail[3], Ohloh, Sourceforge dan Github.

NGINX adalah web server yang juga berfungsi sebagai email proxy, reverse proxy, dan load balancer. Struktur software ini bersifat asinkron dan event-driven; yang memungkinkan banyak request atau permintaan diproses pada waktu bersamaan. Selain itu, NGINX juga dapat diskalakan. Hal ini menunjukkan bahwa layanan ini tumbuh dan berkembang seiring dengan bertambahnya jumlah trafik yang datang ke website. Akhir kata, NGINX dan Apache adalah dua dari sekian web server terbaik yang ada di pasaran.


  • Nginx juga mempunyai beberapa fitur yang dapat dimanfaatkan untuk mendukung performa web server yang andal seperti:
  • Reverse proxy dengan proses cache
  • Dukungan IPv6
  • Load balancing
  • Dukungan FastCGI dengan proses cache
  • WebSockets
  • Menangani file statis, file index, dan auto-indexing
  • TLS/ Sertifikat SSL dengan SNI (Server Name Indication)

➤ Kelebihan Nginx
Nginx adalah web server paling populer di kelasnya dan menjadi solusi pengiriman data website dengan trafik tinggi seperti Dropbox, Netflix, dan Zynga. Sampai dengan saat ini lebih dari 385 juta website di seluruh dunia, termasuk di antaranya 100 ribu website bisnis menggunakan Nginx sebagai web server untuk mengirimkan konten mereka secara cepat, terpercaya, dan mudah. 
Ada beberapa keunggulan yang ditawarkan oleh Nginx:

1. Nginx dapat menggantikan hardware load balancer.
Sebagai perangkat lunak (software) load balancer yang open source, Nginx lebih murah dan mudah untuk dikonfigurasi daripada hardware load balancer. Web server ini juga didesain untuk arsitektur cloud yang modern. Nginx juga mendukung konfigurasi ulang on-the-fly dan terintegrasi dengan DevOps yang modern untuk proses pemantauan yang mudah.

2. Nginx menjadi tool yang multifungsi.
Selain dipakai sebagai web server, Anda juga bisa menggunakan Nginx sebagai load balancer, cache konten, dan server proxy. Karena seluruh konfigurasi berpusat pada satu aplikasi, proses pemantauan akan lebih mudah. Hal ini tentu juga meminimalkan jumlah tool yang Anda kelola.

3. Tersedia berbagai macam dokumentasi yang lengkap.
Jika Anda masih awam menggunakan web server khususnya Nginx, jangan khawatir karena Nginx menyediakan berbagai macam tutorial, webinar, dan dokumentasi yang cukup lengkap untuk Anda pelajari.

Apabila Anda masih kebingungan dengan Nginx, tetapi tetap masih ingin menggunakannya, Anda dapat menggunakan Nginx Plus untuk mendapatkan fasilitas customer support. Jadi Anda bisa mendapatkan bantuan untuk mendiagnosis masalah yang muncul di Nginx.

4. Nginx masih terus dikembangkan.
Nginx sampai dengan saat ini terus dikembangkan secara serius. Apalagi selama satu dekade terakhir Nginx sudah berada di garis depan pengembangan web modern dan telah mendorong pengembangan teknologi dari HTTP hingga dukungan layanan mikro. 

Seiring perkembangan pengiriman konten web, Nginx berencana menambahkan dan menyempurnakan fitur sehingga tidak ada pengiriman data yang cacat. Baru-baru ini Nginx juga mengumumkan akan mengimplementasikan JavaScript yang disesuaikan dengan Nginx dan dukungan untuk modul yang dinamis.

➤ Langkah-langkah Konfigurasi :
Buatlah 3 Operasi Sistem Debian 8.11
 Untuk Server Router-debian berikan 2 adapter, adapter 1 yaitu host-only yang berguna agar client/PC anda bisa mengakses Servernya, dan adapter yang ke 2 yaitu Internal, yang berfungsi agar nantinya ke 3 OS debian 8.11 Server bisa saling terhubung dengan 1 Network yang sama
 Selanjutnya untuk Server Website-1 adapter 1 adalah internal
 Kemudian sama seperti Server website-1, Server website-2 adapter 1 nya yaitu internal

Konfigurasi pada Router-debian :
Dikarenakan saat kita menginstall hanya memasukkan IP address hanya 1 IP, kita harus membuat lagi 1 IP addressnya, masuk ke nano /etc/network/interfaces lalu tekan Enter
Setelah masuk ke interfacenya, ubahlah ip nya, sesuai dengan topologi, yaitu untuk jaringan Host-only : 192.168.17.1 dan Jaringan Internal : 17.17.17.1 dikarenakan Router-debian dijadikan sebagai Router, maka tidak ditulis gatewaynya, karna router itu sudah menjadi gateway. berikut gambar untuk lebih jelasnya
Setelah membuat 2 IP host-only dan Internal, lakukan Restart agar IP nya bisa diperbarui dengan memasukkan /etc/init.d/networking restart jika sudah ada tanda Ok berwarna hijau, maka sudah berhasil
Seperti topologi, tugas router-debian menginstall haproxy, jadi kita langsung saja ketikkan : apt install haproxy, oke disini saya gagal menginstall paketnya dikarenakan ketika saya menginstall OS debiannya tidak menscan DVD 1,2 dan 3
Kemudian kita tambahkan repository Cd debiannya yaitu DVD 3 debian 8.11, dengan cara masukkan perintah : apt-cdrom add lalu tekan Enter
Masukkan DVD 3 debian 8.11 nya dengan mengklik Peranti lalu pilih drive optik, kemudian masukkan DVD 3 debian 8.11 nya
Oke sudah berhasil menambah kan repository CD nya, nanti akan terbaca DVD 3 nya
Sesudah menambahkan Repositori CD yaitu DVD 3 debian 8.11, baru anda bisa menginstall paket HAProxy nya, masukkan perintah ; apt install haproxy lalu tekan Enter
Sesudah menginstall paket HAProxy, kita masuk ke nano /etc/default/haproxy lalu tekan Enter
Jika sudah masuk. agar kita bsia mengonfigurasi file nya hilangkan tanda # (pagar) pada CONFIG="/etc/haproxy/haproxy.cfg"
Sesudah menghapusnya sekarang kita masuk ke file tersebut dengan perintah : nano /etc/haproxy/haproxy.cfg lalu tekan Enter
Dipaling bawah, tambahkan teks berikut
Jika sudah benar, kita lakukan restart pad haproxy nya dengan perintah : /etc/init.d/haproxy restart cek apakah sudah ada tanda Ok berwarna hijau apa belum, jika sudah berarti anda sudah benar mengknfigurasinya, nah jika belum/failed maka cek lah di /nano /etc/haproxy/haproxy.cfg
Cukup sampai disitu saja konfigurasi yang dilakukan di router-debian,selanjutnya kira ke website-1

Yang pertama sekali anda lakukan adalah mengatur IP address server websitenya, dikarenakan menggunakan jaringan internal maka anda mensetting IP 1 network dengan Router-debian, langsung saja kita masuk ke : nano /etc/network/interfaces lalu tekan Enter
Masukkan IP nya yaitu 17.17.17.2 sesuai dengan Topologi dan jangan lupa kasih gatewaynya ya yaitu : 17.17.17.1, jika sudah seperti gambar dibawah ini, Tekan Ctrl+X lalu tekan Y enter
Untuk  melakukan pengujian apakah antara website-1 dengan router-debian terhubung, kita bisa menggunakan PING, dengan perintah : ping 17.17.17.1 dicek apakah sudah TTL atau belum, jika sudah maka kita lanjut ke konfigurasi Nginx nya, jika belum, dicek lagi penggaturan jaringan internalnya
Kita install Nginx nya dengan perintah : apt install nginx oke dikarenakan ini sebuah clone dan saya tidak menscan dvd 1,2 dan 3 nya maka tidak bisa menginstall nginx, solusinya sama seperti yang dilakukan di router-debian, yaitu menambahkan reposiori CD, masukkan perintah : apt-cdrom add lalu tekan Enter
Dikarenakan untuk menginstall nginx diperlukan DVD 2, maka disini masukkan DVD 2 , jika sudah memasukkannya, Tekan Enter untuk menscannya
Sesudah menscannya, kita install lagi Nginx nya dengan perintah : apt install nginx lalu tekan Y enter, dan masukkan DVD 1 debian 8.11 jika sudah tekan Enter
Masukkan juga DVD 2 debian 8.11 nya, lalu tekan Enter
Untuk menjalankan Nginx masukkan script : service nginx restart dan untuk memverifikasi apakah nginx sudah running atau belum, bisa ketikkan script : service nginx status
Verifikasi :
Masukkan IP 1 network dengan Server router-debian di PC/Laptop anda, masukkan IP nya di adapter host-only yaitu : 192.168.17.6 dan masukkan gatewaynya, jika sudah klik Ok
Buka google chrome, dan masukkan IP server :192.168.17.1 maka akan tampil gambar seperti dibawah ini, ini adalah tampilan defaultnya
Kembali lagi ke Server website-1, masukkan perintah : systemctl enable nginx dan systemctl start nginx
Agar ketika Client akses tampilannya berubah, kita ubah dengan menggetikkan : echo 'website-1' > /var/www/html/index.nginx-debian.html lalu tekan enter, script ini berguna agar tampilan websitenya berubah
Kembali lagi ke google chromenya, Di reload, maka akan seperti gambar dibawah ini
Sesudah mengkonfigurasi Server website-1, kita lanjut ke Server website-2, sama seperti yang dilakukan di server website-1 yang pertama yaitu menggatur IP nya, masukkan perintah : nano /etc/network/interface lalu tekan Enter
Masukkan IP Address 1 network dengan Server router-debian yaitu 17.17.17.3 dan masukkan gatewaynya 17.17.17.1, jika bingung bisa di cek gambar dibawah ini, jika sudah benar Tekan Ctrl+X lalu tekan Y kemudian tekan Enter
Untuk memastikakan antara server website-2 terhubung dengan server router-debian, lakukan pengujian berupa PING, masukkan perintah berikut : ping 17.17.17.1 lalu pastikan TTL
Jika sudah saling terhubung, Kita tambahkan repositori CD nya dengan perintah : apt-cdrom add dan masukkan DVD 2 debian 8.11
Masukkan DVD 2 debian 8.11, dengan cara Klik peranti, lalu pilih Drive Optik lalu masukkan DVD 2 debian 8.11
Kemudian tekan Enter, pastikan DVD 2 nya terscan
Selanjutnya kita mulai penginstallannya, masukkan perintah : apt install nginx lalu tekan Enter, lalu Tekan Y kemudian Enter, dan nantinya akan disuruh memasukkan DVD 1 debian 8.11
Masukkan Kembali DVD 2 debian 8.11
Jika sudah menginstall nginx nya, kita aktifkan dengan perintah : service nginx restart dan lihat apakah sudah berjalan nginx nya dengan perintah : service nginx status pastikan Ada Bacaan Active (Running) berwarna hijau
Verifikasi :
Lakukan pengujian Web nya dengan cara Buka google chrome, dan masukkan IP server :192.168.17.1 maka akan tampil gambar seperti dibawah ini, ini adalah tampilan defaultnya
Kembali lagi ke Server website-2, masukkan perintah : systemctl enable nginx dan systemctl start nginx
Agar ketika Client akses tampilannya berubah, kita ubah dengan menggetikkan : echo 'website-2' > /var/www/html/index.nginx-debian.html lalu tekan enter, script ini berguna agar tampilan websitenya berubah

Kembali lagi ke google chromenya, Di reload, maka akan seperti gambar dibawah ini
Selanjutnya untuk memastikan Client terhubung dengan ke 3 Server, maka lakukanlah test dengan NgePing IP server website dan IP server HAProxy
Sekarang kita coba ubah tampilan website nya, biar lebih bagus hehe, kita konfigurasi ke server website-1 terlebih dahulu dengan mengetikkan perintah : nano /var/www/html/index.nginx-debian.html lalu tekan enter
Kita Ubah tampilan website-1 nya
Diubah menjadi script seperti gambar dibawah ini biar lebih bagus tampilannya, jika sudah Tekan Ctrl+X tekan Y lalu Enter
Dan cobalah untuk me reload websitenya, pasti akan tampil seperti gambar dibawah ini
Sama seperti yang dilakukan di server website-1, yaitu mengubah tampilan websitenya, sekarang kita ubah tampilan website-2, masukkan perintah : nano /var/www/html//index.nginx-debian.html lalu tekan Enter
Selanjutnya ubah tampilannya
Masukkan Script html seperti gambar dibawah ini, jika sudah Tekan Ctrl+X lalu Y kemudian Tekan Enter
Refresh/reload websitenya maka akan tampil 2 website yaitu WEBSITE-1 dan WEBSITE-2
Bagi anda yang ingin mengembangkan Tampilan websitenya silahkan.. karna semakin bagus tampilan website akan membuat banyak pengunjungnya hehehe

Oke itu saja tutorialnya, semoga bermanfaat ya

Wassalamu'alaikum wr.wb

No comments

Powered by Blogger.