0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

聊聊Nginx作為負(fù)載均衡器它支持的算法都有哪些?

阿銘linux ? 來(lái)源:阿銘linux ? 2023-02-14 17:50 ? 次閱讀

前言

Nginx作為一款最流行WEB服務(wù)器軟件,同時(shí)也是一款反向代理和負(fù)載均衡軟件。毫不夸張地說(shuō),Nginx在負(fù)載均衡領(lǐng)域絕對(duì)是老大地位,這得益于它的高并發(fā)和穩(wěn)定性。而且在配置使用上也是非常簡(jiǎn)單,維護(hù)也特別容易。那么本篇文章就來(lái)聊聊Nginx作為負(fù)載均衡器,它支持的算法都有哪些?

Nginx支持的算法匯總

Nginx并不像LVS那樣支持多達(dá)10種負(fù)載均衡算法,它默認(rèn)支持4種算法,另外還可以通過(guò)自定義三方模塊來(lái)支持更多的三方算法,下面我只列出來(lái)兩種常見(jiàn)的。

算法 說(shuō)明
輪詢 默認(rèn)的算法,如果配置中不指定就走這個(gè)算法
Weight 帶權(quán)重的輪詢算法,權(quán)重越高被請(qǐng)求的次數(shù)就越多
ip_hash 根據(jù)客戶端IP來(lái)選擇后端服務(wù)器
least_conn 會(huì)將請(qǐng)求優(yōu)先發(fā)送給連接數(shù)最少的后端服務(wù)器
fair 三方模塊,按后端服務(wù)器響應(yīng)時(shí)間來(lái)決策
url_hash 三方模塊,按訪問(wèn)url的hash結(jié)果來(lái)分配請(qǐng)求

輪詢

按請(qǐng)求發(fā)來(lái)的順序逐一分配到不同的后端服務(wù)器上,最簡(jiǎn)單最弱智的負(fù)載均衡算法,看似公平,其實(shí)并不好,比如后端某臺(tái)服務(wù)器負(fù)載很高了,那么還是會(huì)雷打不動(dòng)地被動(dòng)接收請(qǐng)求。

配置示例如下:

upstreamaminglinux{
    server 192.168.10.11;
    server 192.168.10.12;
}

Weight

相比較默認(rèn)的輪詢算法,這個(gè)Weight多加了一層權(quán)重的概念。就是說(shuō),我們可以人為地給后端服務(wù)器定義權(quán)重。這樣確實(shí)可以保證讓性能更好的服務(wù)器接收更多的請(qǐng)求,正所謂“能者多勞”! 配置示例如下:

upstreamaminglinux{
    server 192.168.10.11 weight=1;
    server 192.168.10.12 weight=3;
}
說(shuō)明:這個(gè)weight定義的值范圍為1-255,值越大,那么給到的請(qǐng)求就越多。

Ip_hash

當(dāng)使用了負(fù)載均衡后,那么就意味著,同一個(gè)客戶端很有可能第一次訪問(wèn)的是A機(jī)器,而第二次訪問(wèn)的是B機(jī)器,那么這樣就會(huì)導(dǎo)致,訪問(wèn)A機(jī)器時(shí)登錄了,而訪問(wèn)B機(jī)器時(shí)是非登錄狀態(tài)。而這個(gè)算法主要用來(lái)解決此類問(wèn)題。 該算法下,每個(gè)請(qǐng)求按訪問(wèn)IP的哈希結(jié)果分配后端服務(wù)器,使來(lái)自同一個(gè)IP的訪客固定訪問(wèn)一臺(tái)后端服務(wù)器,這樣就解決了上面提到的問(wèn)題,也就是說(shuō)所謂的“session共享問(wèn)題”。

配置示例如下:

upstreamaminglinux{
    ip_hash;
server192.168.10.11;
server192.168.10.12;
}

Least_conn

從字面意思上也可以理解,就是將請(qǐng)求優(yōu)先分配給后端服務(wù)器里連接數(shù)最少的服務(wù)器。不過(guò),這個(gè)算法是和weight配合使用的,它有一個(gè)公式:conns/weight,也就是說(shuō)Nginx會(huì)計(jì)算連接數(shù)除以權(quán)重,最終拿這個(gè)值進(jìn)行比對(duì),值越小會(huì)優(yōu)先分配到請(qǐng)求。 配置示例如下:

upstreamaminglinux{
least_con
server192.168.10.11 weight=10;
server192.168.10.12 weight=5;
}

Fair

這是一個(gè)三方的算法,需要在編譯Nginx時(shí)增加nginx-upstream-fair-master模塊支持。該算法可以根據(jù)后端服務(wù)器的響應(yīng)時(shí)間的大小來(lái)決定將請(qǐng)求發(fā)送給誰(shuí),響應(yīng)時(shí)間越快,那么就優(yōu)先拿到請(qǐng)求。 配置示例如下:

upstreamaminglinux{
fair;
server192.168.10.11;
server192.168.10.12;
}

Url_hash

三方的算法,需要在編譯Nginx時(shí)增加ngx_http_upstream_hash_module模塊支持。該算法按訪問(wèn)url的hash結(jié)果來(lái)分配請(qǐng)求,使每個(gè)url定向到同一個(gè)后端服務(wù)器。注意:使用該算法后不能帶weight。 配置示例如下:

upstreamaminglinux{
hash$request_uri;
server192.168.10.11;
server192.168.10.12;
}





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • LVS
    LVS
    +關(guān)注

    關(guān)注

    1

    文章

    35

    瀏覽量

    9897
  • Hash算法
    +關(guān)注

    關(guān)注

    0

    文章

    43

    瀏覽量

    7374
  • nginx
    +關(guān)注

    關(guān)注

    0

    文章

    139

    瀏覽量

    12115

原文標(biāo)題:Nginx的負(fù)載均衡算法你知道都有哪些嗎

文章出處:【微信號(hào):aming_linux,微信公眾號(hào):阿銘linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    負(fù)載均衡器的誕生和工作機(jī)制

    今天我們來(lái)深度揭秘一下負(fù)載均衡器 LVS 的秘密,相信大家看了你管這破玩意兒叫負(fù)載均衡?這篇文章后,還是有不少疑問(wèn),比如 LVS 看起來(lái)只有類似路由器的轉(zhuǎn)發(fā)功能,為啥說(shuō)它是四層(傳輸層
    的頭像 發(fā)表于 01-04 12:26 ?798次閱讀
    <b class='flag-5'>負(fù)載</b><b class='flag-5'>均衡器</b>的誕生和工作機(jī)制

    機(jī)械調(diào)控和數(shù)控均衡器

    機(jī)械調(diào)控和數(shù)控均衡器         &
    發(fā)表于 09-17 09:04

    音樂(lè)均衡器

    求助~~~~怎樣用labview設(shè)計(jì)出一個(gè)音樂(lè)均衡器?。?!
    發(fā)表于 04-30 17:30

    如何去實(shí)現(xiàn)OFDM系統(tǒng)中的均衡器算法?

    什么是時(shí)變信道中OFDM系統(tǒng)均衡器均衡器算法的FPGA實(shí)現(xiàn)
    發(fā)表于 04-29 07:29

    如何提高自適應(yīng)均衡器的性能?

    自適應(yīng)電纜均衡器是什么?自適應(yīng)均衡器設(shè)計(jì)面臨哪些技術(shù)挑戰(zhàn)?如何提高自適應(yīng)均衡器的性能?
    發(fā)表于 05-18 06:04

    均衡器的基本原理是什么?

    均衡器的基本原理是什么?
    發(fā)表于 05-20 06:45

    頻率均衡器的調(diào)控技巧

    頻率均衡器的調(diào)控技巧 均衡器(EQUALSER)是對(duì)聲信號(hào)頻率響應(yīng)反應(yīng)及振幅進(jìn)行調(diào)整的電聲處理設(shè)備。它可以改變聲與諧波的成份比、
    發(fā)表于 12-12 10:09 ?3344次閱讀

    均衡器的使用誤區(qū)

    均衡器的使用誤區(qū) 均衡器的全稱是房間均衡器。在音響系統(tǒng)中有廣泛的應(yīng)用,但大多數(shù)場(chǎng)合,并沒(méi)有發(fā)揮應(yīng)有的作用。現(xiàn)舉例說(shuō)明
    發(fā)表于 12-12 10:10 ?1873次閱讀

    什么是均衡器

    什么是均衡器 均衡器簡(jiǎn)介 均衡器是一種可以分別調(diào)節(jié)各種頻率成分電信號(hào)放大量的電子設(shè)備,通過(guò)對(duì)各種不同頻率的電信號(hào)的調(diào)節(jié)來(lái)補(bǔ)償揚(yáng)聲器和
    發(fā)表于 02-05 17:52 ?3404次閱讀

    基于Harr小波的均衡器結(jié)構(gòu)

    在分析傳統(tǒng)線性均衡器的基礎(chǔ)上, 提出了一種基于Harr 小波的均衡器結(jié)構(gòu), 并用一組小波來(lái)表示均衡器. 之后, 給出了自適應(yīng)算法, 并對(duì)算法
    發(fā)表于 11-25 13:40 ?26次下載
    基于Harr小波的<b class='flag-5'>均衡器</b>結(jié)構(gòu)

    均衡器的工作原理及設(shè)計(jì)分析

    均衡器在高速數(shù)字傳輸系統(tǒng)當(dāng)中扮演了關(guān)鍵角色。均衡器可以分為兩類:放在發(fā)送端的De-emphasis,放在接收端的CTLE,F(xiàn)FE以及DFE。 我們將會(huì)介紹均衡器的工作原理以及如何正確的設(shè)置均衡
    發(fā)表于 09-01 15:40 ?34次下載
    <b class='flag-5'>均衡器</b>的工作原理及設(shè)計(jì)分析

    電腦均衡器軟件哪個(gè)好_電腦均衡器怎么設(shè)置才好聽(tīng)

    本文首先介紹了四款電腦均衡器軟件,分別是電腦均衡器V2.0 綠色版、均衡器學(xué)習(xí)軟件 V1.0 綠色版、電腦均衡器 2.0 官方最新版以及電腦均衡器
    的頭像 發(fā)表于 05-24 10:41 ?8w次閱讀
    電腦<b class='flag-5'>均衡器</b>軟件哪個(gè)好_電腦<b class='flag-5'>均衡器</b>怎么設(shè)置才好聽(tīng)

    全面剖析HAProxy 負(fù)載均衡器

    的功能。 HAProxy 的社區(qū)非?;钴S,版本更新快速(最新穩(wěn)定版1.7.2于2017/01/13推出)。最關(guān)鍵的是,HAProxy 具備媲美商用負(fù)載均衡器的性能和穩(wěn)定性。因?yàn)?HAProxy 的上述優(yōu)點(diǎn)
    的頭像 發(fā)表于 06-28 09:22 ?2179次閱讀
    全面剖析HAProxy <b class='flag-5'>負(fù)載</b><b class='flag-5'>均衡器</b>

    解密負(fù)載均衡技術(shù)和負(fù)載均衡算法

    負(fù)載均衡器是一種軟件或硬件設(shè)備,起到了將網(wǎng)絡(luò)流量分散到一組服務(wù)器的作用,可以防止任何一臺(tái)服務(wù)器過(guò)載。負(fù)載均衡
    的頭像 發(fā)表于 11-12 09:16 ?1017次閱讀

    如何使用Nginx作為應(yīng)用程序的負(fù)載均衡器

    兩臺(tái)主機(jī)安裝并配置了Web服務(wù)器軟件,才能看到使用nginx進(jìn)行負(fù)載平衡的優(yōu)勢(shì)。如果我們已經(jīng)設(shè)置了一個(gè)正在運(yùn)行的Web主機(jī),則通過(guò)創(chuàng)建自定義圖像復(fù)制并將其部署到新的Web服務(wù)器上。下面是使用
    的頭像 發(fā)表于 03-23 14:52 ?1001次閱讀