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