设为首页 收藏本站
查看: 1921|回复: 0

[经验分享] 七层负载(Application Gateway)+四层负载(LB)

[复制链接]
发表于 2017-7-1 18:31:41 | 显示全部楼层 |阅读模式
  上次有个电商客户需要搭建如架构。
  192.168.1.100/url1(请求url)——>Node1:10.0.0.4、10.0.0.5(服务器IP)
  192.168.1.100/url2(请求url)——>Node2:10.0.0.6、10.0.0.7(服务器IP)
  一个客户端根据请求Url进行流量分配,/url1流量走到Node1,然后Node1这个节点再进行一次流量负载。那么这种应用场景可以使用七层负载均衡(Application Gateway)+四层负载均衡(LB),架构图如下:
DSC0000.png

  此种架构在Azure上实现起来是非常方便的,因为Azure直接就提供7层和4层负载均衡的Pass服务。
1、创建虚拟机(应用服务器)
  按照上图架构中所示,这里我需要创建四台虚拟机,创建虚机的具体步骤这里就不赘述了。
DSC0001.png

  按照上图所示,我已经创建好了四台虚机:imagevm01、imagevm02、videovm01、videovm02
DSC0002.png

  然后,我分别给这四台虚拟机安装IIS,部署了一个网站,每个虚机部署的网站都带有自己的唯一标识。
2、创建四层负载均衡器(Load Banlancer)
  按照如下图所示创建两个Load Banlancer
DSC0003.png

  按照上图我已经创建好了两个Load Banlancer:imagelb、videolb
DSC0004.png

  然后我们需要分别将imagevm01、imagevm02加入imagelb的后端池
DSC0005.png

  videovm01、videovm02加入videolb的后端池
DSC0006.png

3、创建七层负载均衡(Application Gateway)
登录到 Azure
  Login-AzureRmAccount -EnvironmentName AzureChinaCloud



创建资源组或获取资源组
  因为我们创建虚拟机和四层负载均衡已经创建好了资源组,将Application Gateway和这些资源放在一个资源组即可
  Get-AzureRmResourceGroup -Name "{resource group name}" -Location ""
  或者也可以新建一个资源组。
  New-AzureRmResourceGroup -Name AppgwRG -Location "China East"

获取虚拟网络
  $vnet = Get-AzureRmVirtualNetwork -ResourceGroupName "{resource group name}" -Name "{virual network name}"
  分配子网变量,便于完成后面的创建应用程序网关的步骤。
  $subnet=$vnet.Subnets[0]

创建前端配置的公共 IP 地址
  创建前端的公共IP,这个IP就是我们最终访问的Application Gateway的IP地址
  $publicip = New-AzureRmPublicIpAddress -ResourceGroupName AppgwRG -name publicIP01 -location "China North" -AllocationMethod Dynamic

创建应用程序网关配置
  创建名为“gatewayIP01”的应用程序网关 IP 配置。当应用程序网关启动时,它会从配置的子网获取 IP 地址,再将网络流量路由到后端 IP 池中的 IP 地址。请记住,每个实例需要一个 IP 地址。
  $gipconfig = New-AzureRmApplicationGatewayIPConfiguration -Name gatewayIP01 -Subnet $subnet
  分别配置名为“pool01”和“pool2”的后端 IP 地址池,其中,“pool1”的 IP 地址为imagelb的IP地址“42.159.242.134 (imagelbpublicip)”;“pool2”的 IP 地址为videolb的IP地址“139.219.185.186 (videolbpublicip)”。
  $pool1 = New-AzureRmApplicationGatewayBackendAddressPool -Name pool01 -BackendIPAddresses 134.170.185.46, 134.170.188.221,134.170.185.50

$pool2 = New-AzureRmApplicationGatewayBackendAddressPool -Name pool02 -BackendIPAddresses 134.170.186.46, 134.170.189.221,134.170.186.50
  为后端池中进行了负载均衡的网络流量配置应用程序网关设置“poolsetting01”和“poolsetting02”
  $poolSetting01 = New-AzureRmApplicationGatewayBackendHttpSettings -Name "besetting01" -Port 80 -Protocol Http -CookieBasedAffinity Disabled -RequestTimeout 120

$poolSetting02 = New-AzureRmApplicationGatewayBackendHttpSettings -Name "besetting02" -Port 80 -Protocol Http -CookieBasedAffinity Enabled -RequestTimeout 240
  使用公共 IP 终结点配置前端 IP
  $fipconfig01 = New-AzureRmApplicationGatewayFrontendIPConfig -Name "frontend1" -PublicIPAddress $publicip
  配置应用程序网关的前端端口
  $fp01 = New-AzureRmApplicationGatewayFrontendPort -Name "fep01" -Port 80
  配置侦听器。此步骤针对用于接收传入网络流量的公共 IP 地址和连接端口配置侦听器。
  $listener = New-AzureRmApplicationGatewayHttpListener -Name "listener01" -Protocol Http -FrontendIPConfiguration $fipconfig01 -FrontendPort $fp01
  配置后端池的 URL 规则路径
  $imagePathRule = New-AzureRmApplicationGatewayPathRuleConfig -Name "pathrule1" -Paths "/image/*" -BackendAddressPool $pool1 -BackendHttpSettings $poolSetting01

$videoPathRule = New-AzureRmApplicationGatewayPathRuleConfig -Name "pathrule2" -Paths "/video/*" -BackendAddressPool $pool2 -BackendHttpSettings $poolSetting02
  配置默认的后端池,如果路径不符合任何预定义的路径规则,规则路径映射到默认后端池
  $urlPathMap = New-AzureRmApplicationGatewayUrlPathMapConfig -Name "urlpathmap" -PathRules $videoPathRule, $imagePathRule -DefaultBackendAddressPool $pool1 -DefaultBackendHttpSettings $poolSetting02
  创建规则设置
  $rule01 = New-AzureRmApplicationGatewayRequestRoutingRule -Name "rule1" -RuleType PathBasedRouting -HttpListener $listener -UrlPathMap $urlPathMap
  配置实例数目和应用程序网关的大小
  $sku = New-AzureRmApplicationGatewaySku -Name "Standard_Small" -Tier Standard -Capacity 2


创建应用程序网关
  $appgw = New-AzureRmApplicationGateway -Name appgwtest -ResourceGroupName AppgwRG -Location "China East" -BackendAddressPools $pool1,$pool2 -BackendHttpSettingsCollection $poolSetting01, $poolSetting02 -FrontendIpConfigurations $fipconfig01 -GatewayIpConfigurations $gipconfig -FrontendPorts $fp01 -HttpListeners $listener -UrlPathMaps $urlPathMap -RequestRoutingRules $rule01 -Sku $sku



获取应用程序网关 DNS 名称
  Get-AzureRmPublicIpAddress -ResourceGroupName Appgw-RG -Name publicIP01
DSC0007.png

测试访问
  /image会路由到Image01或者Image02
DSC0008.png

  /video会路由到Video01或者Video02
DSC0009.png

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-390139-1-1.html 上篇帖子: VS 2015 各版本比较 下篇帖子: 09 Django 模型(数据库)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表