Nginx實(shí)現(xiàn)負(fù)載均衡

本篇文章介紹Nginx實(shí)現(xiàn)負(fù)載均衡,本文使用Nginx和兩個(gè)SpringBoot簡單Web應(yīng)用實(shí)現(xiàn)。

1.準(zhǔn)備工作。

結(jié)合本文場景,需要安裝Nginx和Java環(huán)境(運(yùn)行SpringBoot項(xiàng)目)。

1.1 關(guān)于Linux系統(tǒng)安裝Nginx可以參考我的文章---(傳送門)。

1.2 由于只是測試,SpringBoot只是映射了根路徑,端口分別是10001和10002,分別返回demo1和demo2字符串作為區(qū)分。

2.Nginx負(fù)載均衡的集中方式介紹

2.1 輪詢

輪詢方式是Nginx負(fù)載默認(rèn)的方式,顧名思義,所有請(qǐng)求都按照時(shí)間順序分配到不同的服務(wù)上,如果服務(wù)Down掉,可以自動(dòng)剔除,如下配置后輪訓(xùn)10001服務(wù)和10002服務(wù)。

upstream  dalaoyang-server {
       server    localhost:10001;
       server    localhost:10002;
}

2.2 權(quán)重

指定每個(gè)服務(wù)的權(quán)重比例,weight和訪問比率成正比,通常用于后端服務(wù)機(jī)器性能不統(tǒng)一,將性能好的分配權(quán)重高來發(fā)揮服務(wù)器最大性能,如下配置后10002服務(wù)的訪問比率會(huì)是10001服務(wù)的二倍。

upstream  dalaoyang-server {
       server    localhost:10001 weight=1;
       server    localhost:10002 weight=2;
}

2.3 iphash

每個(gè)請(qǐng)求都根據(jù)訪問ip的hash結(jié)果分配,經(jīng)過這樣的處理,每個(gè)訪客固定訪問一個(gè)后端服務(wù),如下配置(ip_hash可以和weight配合使用)。

upstream  dalaoyang-server {
       ip_hash; 
       server    localhost:10001 weight=1;
       server    localhost:10002 weight=2;
}

2.4 最少連接

將請(qǐng)求分配到連接數(shù)最少的服務(wù)上。

upstream  dalaoyang-server {
       least_conn;
       server    localhost:10001 weight=1;
       server    localhost:10002 weight=2;
}

2.5 fair

按后端服務(wù)器的響應(yīng)時(shí)間來分配請(qǐng)求,響應(yīng)時(shí)間短的優(yōu)先分配。

upstream  dalaoyang-server {
       server    localhost:10001 weight=1;
       server    localhost:10002 weight=2;
       fair;  
}

3.Nginx配置

以輪訓(xùn)為例,如下是nginx.conf完整代碼。

worker_processes  1;

events {
    worker_connections  1024;
}


http {
   upstream  dalaoyang-server {
       server    localhost:10001;
       server    localhost:10002;
   }

   server {
       listen       10000;
       server_name  localhost;

       location / {
        proxy_pass http://dalaoyang-server;
        proxy_redirect default;
      }

    }

}

4.測試

重啟nginx,第一次訪問http://localhost:10000如圖所示,

image

在次訪問如圖所示

image

如果要修改負(fù)載均衡算法修改對(duì)應(yīng)upstream模塊即可。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Nginx實(shí)現(xiàn)負(fù)載均衡的原理: 負(fù)載均衡在服務(wù)端開發(fā)中算是一個(gè)比較重要的特性。因?yàn)镹ginx除了作為常規(guī)的Web服...
    Java機(jī)械師閱讀 862評(píng)論 0 1
  • Nginx的安裝和配置 進(jìn)入Nginx官網(wǎng)站http://nginx.org/,點(diǎn)擊右側(cè)download 如下是n...
    John_Phil閱讀 844評(píng)論 0 0
  • 一、什么是負(fù)載均衡 當(dāng)一臺(tái)服務(wù)器的單位時(shí)間內(nèi)的訪問量越大時(shí),服務(wù)器壓力就越大,大到超過自身承受能力時(shí),服務(wù)器就會(huì)崩...
    風(fēng)吹我已散博客閱讀 467評(píng)論 0 0
  • 一:為什么要實(shí)現(xiàn)負(fù)載均衡 當(dāng)一臺(tái)服務(wù)器的單位時(shí)間內(nèi)訪問量越大的時(shí)候,服務(wù)器壓力會(huì)越大,當(dāng)一臺(tái)服務(wù)器壓力大得超過自身...
    芷_念閱讀 2,345評(píng)論 0 1
  • nginx不單可以作為強(qiáng)大的web服務(wù)器,也可以作為一個(gè)反向代理服務(wù)器,而且nginx還可以按照調(diào)度規(guī)則實(shí)現(xiàn)動(dòng)態(tài)、...
    huoyl0410閱讀 493評(píng)論 0 0

友情鏈接更多精彩內(nèi)容