Ningx負載均衡
- upstream(上游)配置負載均衡
- 1、weight(加權輪詢)
- 2、ip_hash(負載均衡)
- 3、url hash負載均衡
- 4、least_conn(最小連接負載均衡)
upstream(上游)配置負載均衡
Nginx負載均衡
參考: nginx從安裝到高可用
nginx默認
采用輪詢
的方式進行負載均衡
1、weight(加權輪詢)
權重值越大
,請求轉發
到該上游服務器比例
就越大
權重值為0
,只有在其他服務器故障
時才會被用于負載均衡。
# 配置上游服務器集群
## proxyName是上游服務器集群的名稱
upstream proxyName {# 上游服務器1的 IP地址和端口,權重為1server 192.168.1.173:8080 weight=1;# 上游服務器2的 IP地址和端口,權重為5server 192.168.1.174:8080 weight=5;# 上游服務器3的 IP地址和端口,權重為2server 192.168.1.175:8080 weight=2;
}
2、ip_hash(負載均衡)
ip_hash
策略,該策略會使用客戶端IP地址
的哈希值
來選擇上游服務器
。
具體來說:當客戶端第一次
請求時,nginx會將客戶端的IP地址進行哈希計算,然后使用哈希值對上游服務器的數量取模,以確定應該使用哪個上游服務器處理該請求。
如果客戶端IP地址不變
,則后續
的請求
都會被轉發到同一個上游服務器
。
hash算法實際上只會計算 192.168.1
這段做哈希
。
使用ip_hash的注意點
:
不能把后臺服務器直接移除
,只能標記down
.
# 配置上游服務器集群
## proxyName是上游服務器集群的名稱
upstream proxyName {# ip_hash策略ip_hash# 上游服務器1的 IP地址和端口server 192.168.1.173:8080;# 上游服務器2的 IP地址和端口server 192.168.1.174:8080;# 上游服務器3的 IP地址和端口server 192.168.1.175:8080;
}
3、url hash負載均衡
hash $request_url
:使用請求的 URL
進行哈希
,以便在后續的負載均衡中選擇服務器。這里使用的是哈希算法,可以根據不同的負載均衡策略選擇不同的算法。
# 定義一個名為 [proxyName] 的 upstream 用于代理請求
upstream proxyName {# 根據請求的 URL 進行哈希,以便在后續的負載均衡中選擇服務器hash $request_url;# 定義三個服務器,用于實現負載均衡# 上游服務器1的 IP地址和端口server 192.168.1.173:8080;# 上游服務器2的 IP地址和端口server 192.168.1.174:8080;# 上游服務器3的 IP地址和端口server 192.168.1.175:8080;
}
4、least_conn(最小連接負載均衡)
least_conn
:使用最小連接數
負載均衡策略,即選擇連接數最少的服務器進行轉發。使用 least_conn 策略可以避免某個服務器負載過高,而其他服務器負載較輕的情況。
# 定義一個名為 [proxyName] 的 upstream 用于代理請求
upstream proxyName {# 使用 least_conn 策略,即選擇連接數最少的服務器進行轉發least_conn;# 定義三個服務器,用于實現負載均衡# 上游服務器1的 IP地址和端口server 192.168.1.173:8080;# 上游服務器2的 IP地址和端口server 192.168.1.174:8080;# 上游服務器3的 IP地址和端口server 192.168.1.175:8080;
}
