Setup High Availability Web Service dengan Docker HAProxy


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.
  1. 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
    touch Dockerfile
    Tambahkan perintah berikut pada Dockerfile.
    FROM haproxy:1.7
    COPY haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg
    Selanjutnya build images haproxy.
    docker build -t haproxy .
    Output :


  2. 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 /docker
touch /docker/docker-compose.yml
Tambahkan perintah berikut pada docker-compose.yml.
version: '2'

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
Step 2 - Buat direktory untuk konfigurasi haproxy.
mkdir /docker/haproxy
touch /docker/haproxy/haproxy.cfg
Tambahkan perintah berikut pada file /docker/haproxy/haproxy.cfg.
global
    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
Step 3 - Jalankan docker compose.
docker-compose up -d
Output :

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..!!!


EmoticonEmoticon