本文主要介绍Windows Azure 应用程序网关三种主要功能介绍:Http负载平衡基于cookie会话连接SSL卸载

Windows Azure Application Gateway 应用程序网关_第1张图片

Azure应用程序网关(Azure Application Gateway

 

基础环境准备,在虚拟网络中为应用程序网关创建一个子网,在本文中使用AppGateway-1子网。

 

Windows Azure Application Gateway 应用程序网关_第2张图片

 

New-AzureApplicationGateway -Name WinAppGW -VnetName AppGatewayVnet -Subnets AppGateway-1

#新建应用程序网关,命名为WinAppGW ,放置在虚拟网络AppGatewayVnet 子网AppGateway-1

#此时不会开始计收网关的费用。计费将在后面已成功启动网关时开始

wKioL1bC09DS5dG1AAAaKrhCOTo133.png

 

Get-AzureApplicationGateway

#获取网关的详细信息

Windows Azure Application Gateway 应用程序网关_第3张图片

 

Start-AzureApplicationGateway -Name WinAppGW

#尝试启动网关,提示“由于没有进行任何配置,无法启动”

wKiom1bC026RLKKrAAAy8ZwGDDU841.png

 

既然这样,我们先配置“Http负载平衡”的功能。

 

Part.1HTTP load balancingHttp负载平衡)


1.  对比Azure负载平衡器 VS Azure应用程序网关

Azure Load Balancer,工作在传输层工作,TCP/UDP,提供4负载均衡

Azure Application Gateway 提供Http流量的路由规则,进一步对7http流量进行负载均衡

Windows Azure Application Gateway 应用程序网关_第4张图片

 

2.Application Gateway 通过配置,可以将Http流量路由至虚拟机、云服务、web app外部IP

 

3.实验过程:

 

使用两台虚拟机作为后端web服务器集群:winappgatevm-1(10.0.0.4)winappgatevm-2(10.0.1.4)

 

Windows Azure Application Gateway 应用程序网关_第5张图片

 

 

拓扑:

Windows Azure Application Gateway 应用程序网关_第6张图片

管理配置应用程序网关需要使用xml文件,使用如下xml文件,配置80端口的负载平衡:

 

   

       

            FrontendPort1

            80

       

   

 

   

       

            BackendPool1

           

                10.0.0.4

                10.0.1.4

           

       

   

 

   

       

            BackendSetting1

            80

            Http

            Disabled

       

   

 

   

   

       

            HTTPListener1

            FrontendPort1

            Http

       

   

 

       

       

            FrontendPort1

            80

       

   

 

   

       

            BackendPool1

           

                10.0.0.4

                10.0.1.4

           

       

   

 

   

       

            BackendSetting1

            80

            Http

            Enabled

       

   

 

   

   

       

            HTTPListener1

            FrontendPort1

            Http

       

   

 

       

   

       

            FrontendPort1

            443

       

   

 

   

       

            BackendPool1

           

                10.0.0.4

                10.0.1.4

           

       

   

 

   

       

            BackendSetting1

            80

            Http

            Disabled

       

   

 

   

       

            HTTPListener1

            FrontendPort1

            Https

            GWCert

       

   

 

   

       

            HttpLBRule1

            basic

            BackendSetting1

            HTTPListener1

            BackendPool1

       

   

 

#通过修改好的xml配置应用程序网关,使我们的证书生效

Set-AzureApplicationGatewayConfig -Name WinAppGW -ConfigFile D:\ssloffloadhttplb.xml

wKiom1bC03DS-IfnAAA2aUbFEf0412.png

 

访问 https://139.217.27.22/ ,已经可以访问,并且可以负载均衡。证书为自己手工制作的自签名证书,此处不受信可以也不影响https的测试访问。

Windows Azure Application Gateway 应用程序网关_第12张图片

 

Windows Azure Application Gateway 应用程序网关_第13张图片

 

Part.4】细节强化

1. 网关大小:Small, Medium and Large

其中Small仅仅用于测试。

 

2.限制

Global:一个订阅50个应用程序网关,每个应用程序网关最多10个实例(此处实例是指后端的虚拟机个数)。

China:一个订阅10个应用程序网关

 

修改网关大小和后端实例实数参考:

Update-AzureApplicationGateway -Name "WinAppGW" -InstanceCount 5 -GatewaySize "Large" -Description "Updated application gateway"

Windows Azure Application Gateway 应用程序网关_第14张图片

 

3.监测

应用程序网关每隔30秒发出probe报文来监视监控后端服务器的健康情况,返回code200-399确认http服务正常。如果发现某个后台服务器不能及时响应导致probe失败之后,此台后台的VM会从健康实例池中移除,直到其能及时响应probe探测为止。

 

4.同时使 http 80负载平衡、https 443负载平衡生效的xml参考配置:

 

 

   

       

            FrontendPort1

            80

       

       

            FrontendPort2

            443

       

   

 

   

       

            BackendPool1

           

                10.0.0.4

                10.0.1.4

           

       

   

 

   

       

            BackendSetting1

            80

            Http

            Disabled

       

   

 

   

       

            HTTPListener1

            FrontendPort1

            Http

       

       

            HTTPListener2

            FrontendPort2

            Https

            GWCert

       

   

 

   

      

            HttpLBRule1

            basic

            BackendSetting1

            HTTPListener1

            BackendPool1

       

       

            HttpLBRule2

            basic

            BackendSetting1

            HTTPListener2

            BackendPool1