Load Balancing
Distribute traffic across application servers.
nginx Load Balancer
nginx
upstream backend {
least_conn;
server backend1:8080 weight=3;
server backend2:8080;
server backend3:8080 backup;
}
server {
listen 80;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
HAProxy
code
frontend http_front
bind *:80
default_backend http_back
backend http_back
balance roundrobin
option httpchk GET /health
server web1 10.0.0.1:8080 check
server web2 10.0.0.2:8080 check
AWS ALB
bash
aws elbv2 create-load-balancer \ --name my-alb \ --subnets subnet-xxx subnet-yyy \ --security-groups sg-xxx \ --type application
Best Practices
- •Implement health checks
- •Use sticky sessions when needed
- •Enable connection draining
- •Monitor backend health