一,引言
今天,我們學習一個新的知識點-----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
版權:轉載請在文章明顯位置註明作者及出處。如發現錯誤,歡迎批評指正。