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就会出现以下效果:

相关文章
相关标签/搜索