Nginx幾種負(fù)載均衡模式的實(shí)現(xiàn)示例
1.輪詢 (Round Robin) - 默認(rèn)模式
按順序逐一分配請(qǐng)求到各個(gè)后端服務(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)重分配請(qǐng)求,權(quán)重越高,被分配的請(qǐng)求越多。
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 地址進(jìn)行哈希計(jì)算,同一 IP 的請(qǐng)求會(huì)被分配到同一臺(tái)服務(wù)器,可以解決 session 共享問(wèn)題。
upstream backend {
ip_hash;
server 192.168.1.10;
server 192.168.1.11;
server 192.168.1.12;
}
4.最少連接 (Least Connections)
將請(qǐng)求分配給當(dāng)前連接數(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 進(jìn)行哈希分配。
upstream backend {
hash $request_uri consistent;
server 192.168.1.10;
server 192.168.1.11;
server 192.168.1.12;
}
6.通用哈希 (Generic Hash)
可以基于任意變量進(jìn)行哈希。
upstream backend {
hash $remote_addr; # 基于客戶端IP
# hash $cookie_jsessionid; # 基于cookie
server 192.168.1.10;
server 192.168.1.11;
}
7.隨機(jī) (Random)
隨機(jī)選擇一臺(tái)服務(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; # 標(biāo)記為不可用
}
參數(shù)說(shuō)明:
weight: 權(quán)重,默認(rèn)為 1max_fails: 允許請(qǐng)求失敗的次數(shù),默認(rèn)為 1fail_timeout: 失敗超時(shí)時(shí)間,默認(rèn)為 10 秒backup: 備份服務(wù)器,只有其他服務(wù)器都不可用時(shí)才使用down: 標(biāo)記服務(wù)器永久不可用
最常用的模式:
- 無(wú)狀態(tài)應(yīng)用:輪詢、加權(quán)輪詢、最少連接
- 有狀態(tài)應(yīng)用:IP Hash、一致性哈希
到此這篇關(guān)于Nginx幾種負(fù)載均衡模式的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)Nginx 負(fù)載均衡模式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
k8s部署nginx訪問(wèn)Tomcat的實(shí)現(xiàn)示例
本文介紹了如何使用Kubernetes部署Nginx,并通過(guò)Nginx訪問(wèn)Tomcat,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08
Nginx+PHP8.0支持視頻上傳的項(xiàng)目實(shí)踐
在Ubuntu 20.04上配置Nginx和PHP 8.0以支持視頻上傳,介紹了調(diào)整Nginx和PHP的配置文件,增加上傳文件大小限制,調(diào)整超時(shí)時(shí)間和緩沖區(qū)大小等相關(guān)配置,感興趣的可以了解一下2025-02-02
Nginx搭建負(fù)載均衡集群的實(shí)現(xiàn)
這篇文章主要介紹了Nginx搭建負(fù)載均衡集群的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
nginx高可用集群的實(shí)現(xiàn)過(guò)程
這篇文章主要介紹了nginx高可用集群的實(shí)現(xiàn)過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10
nginx-ingress-controller部署配置詳解
這篇文章主要為大家介紹了nginx ingress controller的部署配置,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11

