Azure Application Gateway(一)对后端 Web App 进行负载均衡
一,引言
今天,我们学习一个新的知识点-----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 Web App 和Azure VM 部署系列:
1,Azure Web App(一)发布你的Net Core Web 项目
2,Azure Web App(二)使用部署槽切换部署环境代码
3,Azure Web App(三)切换你的Net Core Web 项目的数据库连接字符串
4,Azure Traffic Manager(一) 为我们的Web项目提供负载均衡
5,Azure Traffic Manager(二) 基于权重与基于优先级的路由策略为我们的Web项目提供负载均衡
6,Azure Load Balance(一) 为我们的Web项目提供负载均衡
7,Azure Load Balancer(二) 基于内部的负载均衡来转发访问请求
8,Azure Application Gateway(一)对后端 Web App 进行负载均衡
9,Azure Application Gateway(二)对后端 VM 进行负载均衡
二,正文
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
版权:转载请在文章明显位置注明作者及出处。如发现错误,欢迎批评指正。