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)文章
nginx版本熱更新實(shí)現(xiàn)過(guò)程
這篇文章主要介紹了nginx版本熱更新實(shí)現(xiàn)過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-07-07
centos系統(tǒng)下LNMP環(huán)境一鍵安裝
centos下的LNMP環(huán)境一鍵安裝實(shí)現(xiàn)方法,需要的朋友可以參考下。2010-06-06
使用nginx打包部署前端vue項(xiàng)目完整過(guò)程(保姆級(jí)教程)
這篇文章主要給大家介紹了關(guān)于使用nginx打包部署前端vue項(xiàng)目的相關(guān)資料,包括打包命名、執(zhí)行打包命令、檢查打包成功、下載和解壓Nginx、部署到Nginx、啟動(dòng)Nginx并訪問(wèn)項(xiàng)目、以及Nginx的優(yōu)勢(shì),需要的朋友可以參考下2024-11-11
Node.js站點(diǎn)使用Nginx作反向代理時(shí)配置GZip壓縮的教程
這篇文章主要介紹了Node.js站點(diǎn)使用Nginx作反向代理時(shí)配置GZip壓縮的教程,文中演示了Node使用Express框架時(shí)的HTTP傳輸壓縮配置,需要的朋友可以參考下2016-04-04

