NGINX(3) - Load-Balancing Model
本文會探討 NGINX 中分配請求的策略。
NGINX 中分配請求的策略如下:
- Round Robin
- Least Connections
- IP Hash
- Generic Hash
- Least Time
- Random
1. Round Robin:
預設算法,請求依照權重 (無權重)方式分配。
upstream demo { # 不指定附載均衡的方法 server example1.com; server example2.com; }
2. Least Connections:
同時考量連接數量及權重,選擇最小的。
upstream demo { least_conn; server example1.com; server example2.com; }
3. IP Hash:
使用 IP 計算 Hash,保證同 IP 會由同台 backend 處理。
upstream demo { ip_hash; server example1.com; server example2.com; }
IPv4 用前三碼 (如: IP 為 192.168.50.xx 使用 192,168,50 計算 Hash),IPv6 用全部字元。
4. Generic Hash:
計算特定變數的 Hash (通常會用 UID)。
5. Least Time:
NGINX Plus 才有的功能。類似搶答,先舉手的人先獲勝。
6. Random:
隨機選一或隨機選二,若隨機選二則需要再提供一個選則策略。
隨機選一:
upstream demo { random; server example1.com; server example2.com; server example3.com; server example4.com; server example5.com; server example6.com; }
隨機選二再判斷最小連接:
upstream demo { random two least_conn; server example1.com; server example2.com; server example3.com; server example4.com; server example5.com; server example6.com; }
留言
張貼留言