Nginx-負載均衡

章節(jié)目錄

  • 什么是負載均衡
  • 使用負載均衡要解決的問題
  • 基于LVS的中間件架構(gòu)
    • GSLB
    • SLB
    • 四層負載均衡和七層負載均衡
    • Nginx 負載均衡
    • 配置語法
    • 負載均衡配置實戰(zhàn)

什么是負載均衡

當(dāng)用戶請求量增加至單臺服務(wù)器不能及時處理的時候
即(單臺服務(wù)器可接受能夠建立連接的并發(fā)請求超過上限時),
那么就需要橫向擴容應(yīng)用服務(wù)器來多當(dāng)前場景下的高并發(fā)請求做處理,
負載均衡正是將高并發(fā)請求分流至水平節(jié)點上不同應(yīng)用服務(wù)器的一種技術(shù)。

負載均衡要解決的問題

提升服務(wù)的高可用性,容災(zāi),提升應(yīng)用服務(wù)器對并發(fā)請求的處理能力。

基于LVS的中間件架構(gòu)

GSLB-全局負載均衡
如下圖所示:

GSLB-全局負載均衡

適用場景:跨國機房應(yīng)用服務(wù)部署
如北京張三訪問應(yīng)用服務(wù)器,則請求先到達本地的調(diào)度節(jié)點,
調(diào)度節(jié)點返回應(yīng)用服務(wù)器某服務(wù)的調(diào)用地址,
客戶端再去請求對應(yīng)的應(yīng)用服務(wù)器。
指路

SLB
如下圖所示:

SLB

調(diào)度節(jié)點轉(zhuǎn)發(fā)客戶請求至真正的應(yīng)用服務(wù)器,
應(yīng)用服務(wù)器再將響應(yīng)數(shù)據(jù)返回至調(diào)度節(jié)點,調(diào)度節(jié)點再將數(shù)據(jù)返回給客戶端。
從圖中可以看出調(diào)度節(jié)點與服務(wù)節(jié)點在統(tǒng)一區(qū)域內(nèi),這樣可以應(yīng)對高并發(fā)請求的場景。

四層負載均衡和七層負載均衡

四層負載均衡

傳輸層負載均衡,TCP/IP層負載均衡,進行數(shù)據(jù)包轉(zhuǎn)發(fā),性能更高

七層負載均衡

應(yīng)用層負載均衡 http nginx采用的就是七層負載均衡

Nginx 負載均衡

如下圖所示:


Nginx 負載均衡
Nginx 負載均衡采用了proxy_pass 方式將請求代理至一組虛擬的服務(wù)池,upstream server ,用戶請求過來時,通過一定的負載策略,將請求分發(fā)至服務(wù)池中的某一個應(yīng)用服務(wù)器中。

配置語法

語法:upstream name {}
默認:-
可配置上下文:http
注意配置到 server 層以外,且必須配置在http中

配置實戰(zhàn)

1.新建文件夾 分別存儲不同應(yīng)用服務(wù)上的同名靜態(tài)文件

1.cd /opt/app/ 
2.mkdir code1 code2 code3
3.cd code1 
4.touch index.html
5.vi index.html
<html>
   <title>page1</title>
  <body>
    it is page1
  </body>
</html>
同上在code2 code3 中同樣建立index.html 并且index.html中的內(nèi)容 page1 更改為page2、page3 。

2.新建應(yīng)用服務(wù)器配置文件

1.cd /etc/nginx/conf.d
2.touch server1.conf server2.conf server3.conf
3.vi server1.conf 
server {
   listen 8081;
   server_name eshop-cache04;
   location / {
     root /opt/app/code1;
     index index.html index.htm;
   }
}
4.vi server2.conf
server {
   listen 8082;
   server_name eshop-cache04;
   location / {
     root /opt/app/code2;
     index index.html index.htm;
   }
}
5.vi server3.conf
server {
   listen 8083;
   server_name eshop-cache04;
   location / {
     root /opt/app/code3;
     index index.html index.htm;
   }
}

3.配置upstream&代理請求至虛擬服務(wù)池upstream 中

1.touch upstream_test.conf
2.vi upstream_test.conf
upstream testUpstream {
   server eshop-cache04:8081;
   server eshop-cache04:8082;
   server eshop-cache04:8083;
}

server {
  listen 80;
  server_name eshop-cache04;

  location / {
     proxy_pass http://testUpstream;//虛擬服務(wù)池名字
    # include proxy_params;
  }
}

4.檢查配置文件正確性,重新加載配置文件

1.nginx -t -c /etc/nginx/conf.d
2.nginx -s reload

6.瀏覽器請求,驗證結(jié)果

page1

page2
page3

可以觀察到,同樣的請求顯示的頁面內(nèi)容是不一致的,所以負載均衡配置成功。

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

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

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