Azure Application Gateway(一)對後端 Web App 進行負載均衡

Grant_Allen發表於2020-08-09

一,引言

  今天,我們學習一個新的知識點-----Azure Application Gateway,通過Azure 應用程式閘道器為我麼後端的服務提供負載均衡的功能。我們再文章頭中大概先了解一下什麼是應用程式閘道器。

  Azure Application Gateway 是一種應用程式層(OSI 層 7)負載均衡,Azure 應用程式閘道器可以執行基於 URL 的路由。而上一篇介紹的 Azure Load Balancer 則是傳輸層(OSI 層 4 - TCP 和 UDP)進行操作,並基於源 IP 地址和埠將流量路由到目標 IP 地址和埠。簡單來講,四層就是基於IP+埠的負載均衡;七層就是基於URL等應用層資訊的負載均衡。通過微軟官方提供的文件,我們可以看到 Applcation Gateway 做了如下優化。

1,SSL/TLS終結

2,SKU為 “Standard” 或者 “WAF_v2” 的應用程式閘道器或者WAF 部署支援自動縮放,可根據變化的流量負載模式進行擴充套件或縮減。 自動縮放還無需在預配期間要求選擇部署大小或例項計數。 

3,區域冗餘

4,WAF防火牆

5,AKS的入口控制器,應用程式閘道器入口控制器 (AGIC) 允許你使用應用程式閘道器作為 Azure Kubernetes 服務 (AKS) 群集的入口。

6,基於URL的路由

7,支援Websocker

........ 等等

  接下來,我們依舊看看當前設計的基礎設施架構圖,我們今天只去瞭解它的 HTTP 7層的負載均衡

 --------------------我是分割線--------------------

--------------------我是分割線--------------------

二,正文

Azure Portal 首頁,點選 “Create a resource” 建立資源

搜素框輸入 “Application Gateway”,進行搜尋,點選 “Create”,進行建立資源

Resource  group 選擇創一個新的 “Web_Test_AG_RG”

Application gateway name:“cnbateweb_applicationgateway”

Region:“East Asia”

Tier:“Standard”

其他都是預設選項

Virtual network 選擇建立一個新的網路

Name:“cnbateblogweb_NET”

Subnet name:“cnbateblogweb_SubNET”

Address range:“10.0.1.0/24”

點選 “OK”

點選 “Next:Frontends”,設定應用程式閘道器的 前端

Frontend IP address type:Public

Public IP address:我們選擇建立一個新的公共的 Public IP

我們點選 “Next:Backends”

 點選 “Add a Backend pool” 需要新增後端池

 我們可以看到應用程式閘道器的後端池的目標型別,也就是Target type 我們選擇 “App Service”

Name:“cbbateblogweb_applicationgateway_backendpool”

Add backend pool with targets 選擇:“No” 

Target 選擇之前再介紹 Web App 是建立的 “cnbateblogweb01” 和 “cnbateblogweb02”

我們可以剛剛新增的兩個應用程式後端池目標,點選 “Add”

 

 點選 “Next:Configuration>” 進行下一步配置路由資訊

 點選 “Add a routing rule”,新增路由資訊

Rule name:“cnbateblogweb_applicationgateway_rule”

Listener name:‘cnbateblogweb_httplisten"

Frontend IP 選擇之前建立好的 Frontends 的 Public IP 

其他的選擇預設

點選 “Backend target”的 Tab 頁

Target type 選擇 “Backend pool”

Backend target 選擇 建立好的後端池 “cbbateblogweb_applicationgateway_backendpool”

HTTP setting 點選 “Add new” 建立一個新的 HTTP Setting

Http setting name:“cnbateblogweb_applicationgateway_httpsetting”

Backend protocol 選擇:HTTP

Backend port :"80"

Host name 配置資訊

Overrider with new host name (覆蓋為新的主機名) 選擇:“Yes”

Host name override (覆蓋主機名)選擇:“Pick host name from backend target(從後端池選取主機名)”

其他選擇預設,點選 ”Add“,新增 HTTP setting,點選 ”Add“ 新增 一條路由規則

我們可以看到 “Frontends” 的資訊,”Routing rules“ 資訊,”Backend pools“ 資訊

點選 “Next:Tags”

點選”Next:Review + create“

等待預校驗完成後,我們點選”Create“ 進行建立

等待建立完成後,我們跳轉到建立好的 Azure Application Gateway 中看看

我們找到  健康檢查,我們重新設定一下預設的引數,選擇 “Settings=>Health probes” ,點選當前圈中的預設的健康的配置

 我們可以看到預設的一些配置,比如 超時時間,不健康的閾值次數,間隔時間等等資訊

接下來,我們進行修改一下(此步驟大家在實踐的過程中可以忽略,改不改都不會影響到當前應用程式閘道器的正常使用

Interval(間隔時間) 從30 秒  我們改為 2 秒

Timeout(超時時間)從30 秒  我們改為 5 秒

Unhealthy threashod(不正常閾值) 從 3 次  我們改為1次

點選 “Save”,進行儲存操作

接下來,我們就可以進行測試,看看我們的應用程式閘道器是否可以為我們的後端web App 提供負載均衡的功能

負責下圖中權重的前端Public IP 的地址到瀏覽器中

 ok,bingo!!!!!成功。再次撒花?????!!!!

--------------------我是分割線--------------------

這個有個小建議就是,在建立應用程式閘道器的時候新增後端池配置資訊時,我們可以先新增一個空的後端池,當應用程式閘道器建立好的之後,我們在在後端池配置中新增我們以後的後端池資訊。

--------------------我是分割線--------------------

三,結尾

  今天我們簡單演示了一下使用 Azure Application Gateway 為我們的後端 Web App 提供負載均衡,轉發流量,以及充當防火牆的功能。當前這些都是應用程式閘道器的自帶的強大功能,下一篇,我們將架構圖中的 Web App 替換成 VM ,通過建立Application Gateway,新增後端池,包含兩臺 vm,對後端 vm上掛在的專案網站進行負載均衡

作者:Allen 

版權:轉載請在文章明顯位置註明作者及出處。如發現錯誤,歡迎批評指正。

相關文章