1、基于輪詢的均衡策略:
這個(gè)是Nginx默認(rèn)的均衡算法,如果你不進(jìn)行相關(guān)的配置,默認(rèn)會(huì)執(zhí)行該策略,配置如下:
可以看出,nginx負(fù)載均衡使用到的指令不多,其中比較重要的兩個(gè)是upstream和proxy_pass,upstream塊定義一個(gè)后端小集群,里邊配置相關(guān)的Server組成這個(gè)集群,同時(shí)upstream為這個(gè)集群起個(gè)相應(yīng)的名字,本實(shí)例叫myapp1.proxy_pass處于location塊中,表示對(duì)于所有符合/的request,將會(huì)交給哪個(gè)集群進(jìn)行處理,本實(shí)例為http://myapp1。
但又一點(diǎn)我們需要注意,上面http://myapp1中myapp1必須是upstream起的名字,對(duì)于協(xié)議是使用http還是https,都無(wú)所謂,如果你的協(xié)議使用https,則將http直接改成https即可。另外,如果你在upstream中的server指令中指定了協(xié)議名,那么在proxy_pass指令中就不需要加上協(xié)議名稱了。
nginx負(fù)載均衡使用反向代理實(shí)現(xiàn),也就是我們上面使用到的proxy_pass指令,支持的協(xié)議不止是http和https,同時(shí)還支持FastCGI、uwsgi、SCGI、memcached、gRPC,如果你需要使用除了http、https外的其他協(xié)議,我們不能使用proxy_pass指令了,應(yīng)該轉(zhuǎn)而使用相應(yīng)的指令,如fastcgi_pass、uwsgi_pass、scgi_pass、memcached_pass、grpc_pass。
該策略處理負(fù)載,小編認(rèn)為還是有缺陷的,不能防止某臺(tái)Server出現(xiàn)負(fù)載過(guò)高的情況。因?yàn)槿绻行┱?qǐng)求執(zhí)行時(shí)間過(guò)長(zhǎng),而系統(tǒng)的并發(fā)量卻非常大,那么就可能導(dǎo)致某臺(tái)Server出現(xiàn)request堆積,負(fù)載過(guò)高,snowslide is possible~
2、基于最少連接數(shù)的均衡策略:
該策略主要使用了least_conn指令,具體配置如下:
該策略還是比較人性化的,可以按照機(jī)器的實(shí)際情況進(jìn)行剛需分配。
3、基于ip-hash的均衡策略:
當(dāng)然了,如果我們想實(shí)現(xiàn)這樣一個(gè)功能,我們想讓對(duì)于相同客戶端的請(qǐng)求每次都被分發(fā)到同一個(gè)Server進(jìn)行處理,上面兩種策略都是不做到。此策略可確保來(lái)自同一客戶端的請(qǐng)求始終定向到同一服務(wù)器,但此服務(wù)器不可用時(shí)除外。相關(guān)配置如下:
既然相同客戶端的請(qǐng)求能被同一臺(tái)Server進(jìn)行處理,那么相同客戶端的會(huì)話Session就可以實(shí)現(xiàn)持久化了。
4、基于加權(quán)輪詢的均衡策略:
基于加權(quán)輪詢的策略就不需要過(guò)多講解了,就是在輪詢的基礎(chǔ)上加上個(gè)權(quán)重信息
這種策略適合Server機(jī)器處理能力有區(qū)別的情況。
以上就是四種nginx負(fù)載均衡策略的介紹。
Copyright ? 2013-2020. All Rights Reserved. 恒訊科技 深圳市恒訊科技有限公司 粵ICP備20052954號(hào) IDC證:B1-20230800.移動(dòng)站