Nginx幾種負載均衡模式的實現(xiàn)示例
1.輪詢 (Round Robin) - 默認模式
按順序逐一分配請求到各個后端服務(wù)器。
upstream backend {
server 192.168.1.10;
server 192.168.1.11;
server 192.168.1.12;
}
2.加權(quán)輪詢 (Weighted Round Robin)
根據(jù)權(quán)重分配請求,權(quán)重越高,被分配的請求越多。
upstream backend {
server 192.168.1.10 weight=3;
server 192.168.1.11 weight=2;
server 192.168.1.12 weight=1;
}
3.IP 哈希 (IP Hash)
根據(jù)客戶端 IP 地址進行哈希計算,同一 IP 的請求會被分配到同一臺服務(wù)器,可以解決 session 共享問題。
upstream backend {
ip_hash;
server 192.168.1.10;
server 192.168.1.11;
server 192.168.1.12;
}
4.最少連接 (Least Connections)
將請求分配給當前連接數(shù)最少的服務(wù)器。
upstream backend {
least_conn;
server 192.168.1.10;
server 192.168.1.11;
server 192.168.1.12;
}
5.一致性哈希 (Consistent Hash)
需要第三方模塊支持,根據(jù)指定的 key 進行哈希分配。
upstream backend {
hash $request_uri consistent;
server 192.168.1.10;
server 192.168.1.11;
server 192.168.1.12;
}
6.通用哈希 (Generic Hash)
可以基于任意變量進行哈希。
upstream backend {
hash $remote_addr; # 基于客戶端IP
# hash $cookie_jsessionid; # 基于cookie
server 192.168.1.10;
server 192.168.1.11;
}
7.隨機 (Random)
隨機選擇一臺服務(wù)器(Nginx 1.15.1+ 版本支持)。
upstream backend {
random;
server 192.168.1.10;
server 192.168.1.11;
server 192.168.1.12;
}
常用參數(shù)配置
upstream backend {
server 192.168.1.10 weight=5 max_fails=3 fail_timeout=30s;
server 192.168.1.11 weight=3;
server 192.168.1.12 backup; # 備用服務(wù)器
server 192.168.1.13 down; # 標記為不可用
}
參數(shù)說明:
weight: 權(quán)重,默認為 1max_fails: 允許請求失敗的次數(shù),默認為 1fail_timeout: 失敗超時時間,默認為 10 秒backup: 備份服務(wù)器,只有其他服務(wù)器都不可用時才使用down: 標記服務(wù)器永久不可用
最常用的模式:
- 無狀態(tài)應用:輪詢、加權(quán)輪詢、最少連接
- 有狀態(tài)應用:IP Hash、一致性哈希
到此這篇關(guān)于Nginx幾種負載均衡模式的實現(xiàn)示例的文章就介紹到這了,更多相關(guān)Nginx 負載均衡模式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
nginx-ingress-controller部署配置詳解
這篇文章主要為大家介紹了nginx ingress controller的部署配置,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-11-11

