Nginx Load Balancer with Docker Compose
本機快速架一個 Nginx load balancer + 多個 backend,用來測試分流。
lb/nginx.conf
server/Dockerfile
docker-compose.ymlBackend
dockerfile
FROM python:3.12
CMD ["python3", "-m", "http.server", "8080"]
EXPOSE 8080Nginx
nginx
events {}
http {
upstream backend {
server server1:8080;
server server2:8080;
server server3:8080;
}
server {
listen 80;
location / {
proxy_pass http://backend;
}
}
}upstream預設 round-robin;可加least_conn、ip_hash或weight=- compose 內用 service 名稱當 hostname
docker-compose.yml
yaml
services:
lb:
image: nginx
volumes:
- ./lb/nginx.conf:/etc/nginx/nginx.conf:ro
ports:
- 8080:80
depends_on: [server1, server2, server3]
server1:
build: server/
server2:
build: server/
server3:
build: server/測試分流時 client / server 都用 async,並在 backend 記 log 再統計。