https://github.com/knehez/isi - docker_example_2
A HAProxy egy nyílt forráskódú, magas rendelkezésre állású TCP/HTTP terheléselosztó és proxy szerver. A HAProxy segítségével egyetlen IP-cím mögötti több backend szerver között osztható el a terhelés, így javítva az alkalmazások teljesítményét és megbízhatóságát.
docker-compose.yml
version: "3.3"
services:
web:
build: .
ports:
- "5000"
redis:
image: "redis:alpine"
haproxy:
image: "haproxytech/haproxy-alpine:2.4"
volumes:
- ./haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro
depends_on:
- web
ports:
- "80:80"
HAproxy config:
A következő konfiguráció beállítja a HAProxy-t arra, hogy a 80-as porton figyelje a bejövő HTTP forgalmat, és az öt backend szerver között osztsa szét, amelyek egészségi állapotát ellenőrzik, mielőtt a forgalmat továbbítanák. Továbbá beállít egy statisztikai felületet a 8404-es porton a HAProxy példány monitorozásához.
global stats socket /var/run/api.sock user haproxy group haproxy mode 660 level admin expose-fd listeners log stdout format raw local0 info defaults mode http timeout client 10s timeout connect 5s timeout server 10s timeout http-request 10s log global frontend stats bind *:8404 stats enable stats uri / stats refresh 10s frontend myfrontend bind 0.0.0.0:80 mode http default_backend webservers backend webservers server s1 web:5000 check server s2 web:5000 check server s3 web:5000 check server s4 web:5000 check server s5 web:5000 check
Indítás:
docker-compose up --scale web=4