Application Gateway添加多個Web APP站點

最近無服務器架構是一個很是火的話題,在傳統的Web應用程序架構中,你必須管理基礎架構,而若您用了Azure就能夠從安全(Application Gateway)到網站(Web App & Function)到數據庫(RDS DB )所有的無服務器架構了,這樣能夠極大的下降企業的運營管理成本且擁有無限的可擴展性。 web

今天主要聊聊Application Gateway添加多個Web App站點做爲後端池成員. shell

也許不少讀者很疑惑,官方文檔明明寫着Application Gateway能夠支持多個站點託管,應該也支持添加多個Web APP站點吧。誠然官方文檔寫了能夠添加Web APP做爲後端池成員,可是…卻沒有相應的文檔指導如何添加多個Web APP站點做爲後端池成員。因而乎筆者花了些時間研究了下確實是可讓Application Gateway添加多個Web APP站點。 數據庫

形成這種緣由是Web APP服務自己就是一個多租戶的服務,須要依賴於特定的主機頭或者SNI擴展才能正確解析爲正確的終結點。 後端

測試的架構圖以下所示: 安全

下面咱們就用PowerShell添加多Web App站點 服務器

首先,打開powershell界面 架構

#登陸Azure app

Login-AzureRmAccount -Environment azurechinacloud webapp

 

#列出該系統登陸過的訂閱帳戶(若以前未使用Powershell登陸過,此步驟可省略),選擇須要操做的訂閱 測試

Get-AzureSubscription

Select-AzureSubscription -SubscriptionId "8e6b37a5-63ab-44d9-8fc3-*********"

 

#輸入你須要添加的Web App Dns

$webappFQDN = "web-app1.chinacloudsites.cn"

$webapp=$webappFQDN.Split(".")[0]

 

#輸入應該程序網關的名稱以及資源組的名稱

$gatewayname= "multiple-webapp"

$resourcegroupname="multiple-webapp"

 

#獲取當前應用程序網關的信息

$gw = Get-AzureRmApplicationGateway -Name $gatewayname -ResourceGroupName $resourcegroupname

 

#添加自定義健康檢測

$match=New-AzureRmApplicationGatewayProbeHealthResponseMatch -StatusCode 200-399

Add-AzureRmApplicationGatewayProbeConfig -name "$webapp--probe" -ApplicationGateway $gw -Protocol Http -Path / -Interval 30 -Timeout 120 -UnhealthyThreshold 3 -PickHostNameFromBackendHttpSettings -Match $match

$probe = Get-AzureRmApplicationGatewayProbeConfig -name "$webapp--probe" -ApplicationGateway $gw

 

#添加HTTP設置

Add-AzureRmApplicationGatewayBackendHttpSettings -Name "$webapp--httpsetting" -ApplicationGateway $gw -Port 80 -Protocol Http -CookieBasedAffinity Disabled

Set-AzureRmApplicationGatewayBackendHttpSettings -Name "$webapp--httpsetting" -ApplicationGateway $gw -PickHostNameFromBackendAddress -Port 80 -Protocol http -CookieBasedAffinity Disabled -RequestTimeout 30 -Probe $probe

 

#添加後面地址池

Add-AzureRmApplicationGatewayBackendAddressPool -Name "$webapp--backendpool" -ApplicationGateway $gw

Set-AzureRmApplicationGatewayBackendAddressPool -Name "$webapp--backendpool" -ApplicationGateway $gw -BackendFqdns $webappFQDN

 

#更新應用程序網關

Set-AzureRmApplicationGateway -ApplicationGateway $gw

 

如有多個Web APP站點,更改變量後再執行一次就能夠了。

等等,還沒完事哦,如果多站點咱們還須要添加listener以及rule,因爲listener以主rule每一個企業的需求不同,好比能夠按照path選擇不一樣的後端資源池,這裏主要以圖形界面展現標準的rule配置。

在portal頁面進入Application Gateway,新建一個listener,選擇"Multi-Site"

 

點擊"OK",如有多個listener,重複上述步驟

接下來先刪除默認的rule1

而後添加rule,直接選擇"basic"

一樣的,如有多個rules重複上述步驟

 

 

配置完上述步驟後就算配置完成。

咱們作個簡單的測試:

首先在本地的hosts文件裏添加上以下條目:

139.219.61.179 webapp-1.chinacloudsites.cn

139.219.61.179 webapp-2.chinacloudsites.cn

這樣訪問webapp-1和webapp-2就會強制轉向Application Gateway

咱們用ping命令測試下,看看是否指向Application Gateway的IP地址

這樣訪問webapp-1和webapp-2就會出現以下效果:

相關文章
相關標籤/搜索