Pengenalan
Pada tutorial ini, kita akan belajar bagaimana mengkonfigurasi load balancer menggunakan HaProxy untuk tiga web server berbasis Go-Lang pada infrastruktur Docker Compose.
Tujuan
- Memahami konsep load balancing dan manfaatnya.
- Mempelajari cara kerja HaProxy.
- Mengkonfigurasi HaProxy sebagai load balancer untuk tiga web server Go-Lang.
- Melakukan uji coba dan verifikasi load balancing.
Prasyarat
- Docker sudah terinstal dan berjalan.
- Docker Compose sudah terinstal.
- Pengetahuan dasar tentang Go-Lang.
Langkah-langkah
1. Membangun Web Server Go-Lang
Buatlah tiga project Go-Lang yang berbeda, masing-masing dengan kode berikut:
Go
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello from Web Server %d!\n", r.Host)
})
http.ListenAndServe(":8080", nil)
}
Use code with caution.content_copy
Ubah nama project dan port web server pada setiap project.
2. Menulis File Docker Compose
Buatlah file docker-compose.yml
dengan konfigurasi berikut:
YAML
version: '3.8'
services:
webserver1:
build: ./webserver1
ports:
- "8081:8080"
webserver2:
build: ./webserver2
ports:
- "8082:8080"
webserver3:
build: ./webserver3
ports:
- "8083:8080"
haproxy:
image: "haproxy:2.4.2"
ports:
- "80:80"
volumes:
- "./haproxy.cfg:/etc/haproxy/haproxy.cfg"
Use code with caution.content_copy
3. Menulis Konfigurasi HaProxy
Buatlah file haproxy.cfg
dengan konfigurasi berikut:
Code snippet
global
log /dev/log local0 notice
maxconn 2000
defaults
mode http
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
frontend http
bind *:80
default_backend servers
backend servers
server webserver1 127.0.0.1:8081 check
server webserver2 127.0.0.1:8082 check
server webserver3 127.0.0.1:8083 check
Use code with caution.content_copy
4. Menjalankan Load Balancer dan Web Server
Jalankan perintah berikut untuk membangun dan menjalankan semua container:
docker-compose up -d
5. Pengujian dan Verifikasi
Buka browser web dan akses alamat http://localhost
. Anda akan melihat pesan “Hello from Web Server” secara bergantian dari ketiga web server.
Kesimpulan
Pada tutorial ini, kita telah belajar bagaimana mengkonfigurasi load balancer HaProxy untuk tiga web server Go-Lang menggunakan Docker Compose.
Sumber Daya
- Dokumentasi Docker Compose: https://docs.docker.com/compose/
- Dokumentasi HaProxy: [URL yang tidak valid dihapus]
- Tutorial Load Balancing dengan HaProxy dan Docker: [URL yang tidak valid dihapus]
Tambahan
- Anda dapat menambahkan lebih banyak web server ke konfigurasi load balancer.
- Anda dapat menggunakan health check untuk memastikan web server berjalan dengan baik.
- Anda dapat menggunakan konfigurasi HaProxy yang lebih canggih untuk meningkatkan performa load balancing.