簡單了解Nginx七層負載均衡的幾種調(diào)度算法
這篇文章主要介紹了簡單了解Nginx七層負載均衡的幾種調(diào)度算法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
Nginx是一款輕量級的高性能web服務(wù)器,同時也是一款非常優(yōu)秀的負載均衡器和反向代理服務(wù)器。由于支持強大的正則匹配規(guī)則、動靜分離、URLrewrite功能及安裝配置簡單且對網(wǎng)絡(luò)穩(wěn)定性依賴非常小等優(yōu)點,所以常用來做為七層負載均衡使用。在硬件不差的情況下,通??梢苑€(wěn)定支持幾萬的并發(fā)連接,在硬件性能足夠好,且對系統(tǒng)內(nèi)核參數(shù)及Nginx配置進行優(yōu)化甚至可以達到10萬以上的并發(fā)。
以下是Nginx作為七層負載均衡常用的幾種調(diào)度算法和適用的業(yè)務(wù)場景
1、輪詢(默認調(diào)度算法)
特點:每個請求按時間順序逐一分配到不同的后端服務(wù)器處理。
適用業(yè)務(wù)場景:后端服務(wù)器硬件性能配置完全一致,業(yè)務(wù)無特殊要求時使用。
upstream backendserver { server 192.168.0.14:80 max_fails=2 fail_timeout=10s; server 192.168.0.15:80 max_fails=2 fail_timeout=10s; }
2、加權(quán)輪詢
特點:指定輪詢幾率,weight值(權(quán)重)和訪問比例成正比,用戶請求按權(quán)重比例分配。
適用業(yè)務(wù)場景:用于后端服務(wù)器硬件性處理能力不平均的情形。
upstream backendserver { server 192.168.0.14:80 weight=5 max_fails=2 fail_timeout=10s; server 192.168.0.15:80 weight=10 max_fails=2 fail_timeout=10s; }
3、ip_hash
特點:每個請求按訪問ip的hash結(jié)果分配,這樣每個訪客固定訪問一個后端服務(wù)器,可以解決session會話保持問題。
適用業(yè)務(wù)場景:適用于需要賬號登錄的系統(tǒng),會話連接保持的業(yè)務(wù)。
upstream backendserver { ip_hash; server 192.168.0.14:80 max_fails=2 fail_timeout=10s; server 192.168.0.15:80 max_fails=2 fail_timeout=10s; }
4、最少連接數(shù) least_conn
特點:按nginx反向代理與后端服務(wù)器之間的連接數(shù),連接數(shù)最少的優(yōu)先分配。
適用業(yè)務(wù)場景:適用于客戶端與后端服務(wù)器需要保持長連接的業(yè)務(wù)。
upstream backendserver { least_conn; server 192.168.0.14:80 max_fails=2 fail_timeout=10s; server 192.168.0.15:80 max_fails=2 fail_timeout=10s; }
5、fair(需編譯安裝第三方模塊 ngx_http_upstream_fair_module)
特點:按后端服務(wù)器的響應(yīng)時間來分配請求,響應(yīng)時間短的優(yōu)先分配。
適用業(yè)務(wù)場景:對訪問響應(yīng)速度有一定要求的業(yè)務(wù)。
upstream backendserver { fair; server 192.168.0.14:80 max_fails=2 fail_timeout=10s; server 192.168.0.15:80 max_fails=2 fail_timeout=10s; }
6、url_hash(需編譯安裝第三方模塊 ngx_http_upstream_hash_module)
特點:按訪問url的hash結(jié)果來分配請求,使同一個url訪問到同一個后端服務(wù)器。
適用業(yè)務(wù)場景:適用于后端服務(wù)器為緩存服務(wù)器時比較有效。
upstream backendserver { server 192.168.0.14:80 max_fails=2 fail_timeout=10s; server 192.168.0.15:80 max_fails=2 fail_timeout=10s; hash $request_uri; }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持本站。
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。