Nginx Load Balancing on RHEL 9
Round-robin (default)
upstream myapp {
server 192.168.1.10:8080;
server 192.168.1.11:8080;
server 192.168.1.12:8080;
}
server {
listen 80;
server_name lb.example.com;
location / { proxy_pass http://myapp; }
}
Least connections
upstream myapp { least_conn; server 192.168.1.10:8080; server 192.168.1.11:8080; }
IP hash (session persistence)
upstream myapp { ip_hash; server 192.168.1.10:8080; server 192.168.1.11:8080; }
Weighted
upstream myapp { server 192.168.1.10:8080 weight=3; server 192.168.1.11:8080 weight=1; }
Backup server
upstream myapp { server 192.168.1.10:8080; server 192.168.1.11:8080 backup; }
Reload
nginx -t && systemctl reload nginx 2>/dev/null || nginx -t && rcctl reload nginx