混合使用Azure LB和ILB访问相同web服务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了混合使用Azure LB和ILB访问相同web服务相关的知识,希望对你有一定的参考价值。

 

在经典的使用场景中,我们一般使用AzureLoadBalancer来面向公网提供负载均衡服务,而使用Azure Internal Load Balancer提供内部那些不愿意将服务暴露给公网的服务,比如数据库层。经典场景示例如下图所示:

 

技术分享

 

但在一些特殊的使用场景中,相同的web服务,用户会希望既能用LB通过公网来访问,也可以使用ILB通过内网来访问,并且访问端口,访问方式完全一样,我画了一个简单的示意图,如下图所示:

技术分享

本文介绍一下如何配置该种场景的LB和ILB,为测试方便,需要提前做如下准备:

  1. 安装并且配置Azure Powershell,请使用0.9.8版本,因为1.0以上版本使用了AzureResourceManager,配置方法和命令会有所不同,我后续文章会介绍:

 

技术分享

  1. 在Azure上建立vNet,我们测试的3台VM都需要放在这个vNet里面

  2. 创建2台WEB VM,在我的测试用例中,为了直观,使用两台Ubuntu 14.04作为WEB服务器,放在同样的vNet里面,一个cloudservice中,并且配置了高可用集合,这也是生产环境中配置高可用的最佳实践

  3. 创建一台测试VM,我的测试中用的是Windowsserver 2012,放在和webvm同样的vNet中

 

为了区分两台web VM和测试web服务,我们来做一些简单的修改,基本上做两件事情:

  1. 安装nginx作为web服务器

  2. 修改默认页面,加上VM1和VM2这样的字样来区分服务的请求响应的VM。

 

具体做法如下:

  1. 首先安装Nginx

技术分享

  1. 配置Nginx默认页面做测试:

 

  • sudo vi /usr/share/nginx/html/index.html

  • 添加标识语句,来区分不同的VM<h2>THIS IS VM1</h2>

  • 保存退出,按照这个方法,修改第二个VM

 

技术分享

 


以上是关于混合使用Azure LB和ILB访问相同web服务的主要内容,如果未能解决你的问题,请参考以下文章

将应用部署到 Azure 内部应用服务环境 (ASE ILB) 内的 Azure 应用服务

如何使用 Azure 管理 SDK 创建内部负载均衡器 (ILB)?

Azure 内部负载平衡 - 创建 ILB 时需要传递哪个 IP 地址

Azure SLB + httpd + ILB + HAProxy + Atlas + MySQL

应用之间的 Azure Web 应用访问限制

Azure - 从辅助角色访问与 Web 角色相同的 blob