Setup High Availability Web Service - Hallo sobat opreker, pada artikel sebelumnya www.dimasrio.com sudah menjelaskan bagimana cara membuat web service menggunakan docker. Pada kesempatan kali ini, saya akan mencoba sedikit mengembangkan artikel sebelumnya yaitu dengan membuat high availability web service dengan haproxy. Oke sobat, berikut yang sobat harus persiapkan.
- Download (pull) docker images nginx dan haproxy.
docker pull nginx
Untuk download images haproxy caranya sedikit berbeda. Karena images haproxy memerlukan file haproxy.cfg maka kita perlu membuat Dockerfile saat pull images haproxy.touch haproxy.cfg
Tambahkan perintah berikut pada Dockerfile.
touch Dockerfile
FROM haproxy:1.7
Selanjutnya build images haproxy.
COPY haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg
docker build -t haproxy .
Output :
- Install docker compose.
Jika kedua tahap di atas sudah selesai dilakukan maka lanjut pada konfigurasi.
Konfigurasi High Availability Web Service
Step 1 - Buat direktory untuk docker compose.
mkdir /dockerTambahkan perintah berikut pada docker-compose.yml.
touch /docker/docker-compose.yml
version: '2'Step 2 - Buat direktory untuk konfigurasi haproxy.
services:
nginx_01:
container_name: web01
image: nginx
restart: always
volumes:
- ./nginx/www01:/usr/share/nginx/html/:rw
nginx_02:
container_name: web02
image: nginx
restart: always
volumes:
- ./nginx/www02:/usr/share/nginx/html/:rw
load_balance:
container_name: load_balance
image: haproxy
restart: always
ports:
- 8082:8082
- 8080:80
links:
- nginx_01
- nginx_02
volumes:
- ./haproxy/:/usr/local/etc/haproxy/:rw
mkdir /docker/haproxyTambahkan perintah berikut pada file /docker/haproxy/haproxy.cfg.
touch /docker/haproxy/haproxy.cfg
globalStep 3 - Jalankan docker compose.
log 127.0.0.1 local2 info
maxconn 512
daemon
defaults
mode http
log global
option httplog
timeout connect 10s
timeout client 30s
timeout server 30s
frontend http-in
bind *:80
default_backend http_backend
option forwardfor
backend http_backend
balance roundrobin
server www01 web01:80 check
server www02 web02:80 check
frontend stats
bind *:8082
stats enable
stats auth admin:admin
stats hide-version
stats show-node
stats refresh 15s
stats uri /stats
docker-compose up -dOutput :
Sampai di sini sobat sudah bisa menambahkan script html, sebagai contoh buat script index.html sederhana pada folder www01 dan www02 pada direktory /docker/nginx/.
Output:
Demikian tutorial docker kali ini mengenai simple setup high availability web service dengan docker haproxy. Semoga bermanfaat bagi kita semua dan selamat mencoba..!!!