https://github.com/knehez/isi - folder 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