29-配置ALB基于路径的路由功能

Hello大家好,欢迎来到《AWS解决方案架构师认证 Professional(SAP)中文视频培训课程》,上节课我们介绍了应用程序负载均衡器,并且基于创建好的测试环境,快速演示了应用程序负载均衡器的基于路径的路由功能。这节课我们将从头开始创建ALB,并配置基于路径的路由功能,实现上节课快速演示的实验。

我们开始今天的课程内容。

准备实操的EC2实例测试环境

PPT右边的图示为我们的测试环境,在我们创建应用程序负载均衡器前,要准备好测试环境中的两台实例。
我已经启动了2台EC2实例,全部配置了NGINX服务,并在:

  • SERVER1的NGINX的网站根目录创建images目录并上传了view.jpg文件;
  • 在SERVER2的NGINX的网站根目录创建about目录以及about.txt文件。

关于NGINX的安装和配置在之前的课程中已经介绍过了,有疑问的同学可以查看之前的课程内容。

切换到EC2的控制台,可以看到对应PPT中的两个实例,SERVER1 和 SERVER2已经启动了。

我已经分别ssh到这两个实例,我们来看一下:

  • 首先server1 实例,切换到nginx的网站根目录,cd /usr/share/nginx/html,可以看到已经创建的images目录,可通过mkdir命令创建目录,进入images目录,可以看到我之前已经上传的view.jpg。
  • 同样,登录到server2 实例,切换到nginx的网站根目录,cd /usr/share/nginx/html,可以看到已经创建的about目录,进入about目录,可以看到我之前创建的的about.txt文件,可以通过cat about.txt查看文件内容。

好,接下来我们快速测试下对应这两台实例的web页面是否可以正常显示。

我们切换到控制台,复制下SERVER1实例的外网iP,然后粘贴到浏览器,然后补全url:http://13.231.230.134/images/view.jpg ,可以正常显示图片;

然后复制下SERVER2实例的外网IP,粘贴到浏览器,然后补全url:http://52.199.101.71/about/about.txt , 可以看到server1和server2两个实例对应的url页面都可以正常访问。

创建应用程序负载均衡器

那么这两台实例的测试环境我们就已经准备好了,接下来我们就可以开始创建应用程序负载均衡器了。

  • 访问“负载均衡器”控制台,点击“创建负载均衡器”,然后选择创建应用程序负载均衡器。
  • 为应用程序负载均衡器提供名称,我们就叫alb-test。
  • 模式这里,可以选择面向 internet或者内部的负载均衡器,我们的这个测试选择“面向 internet”。
  • 然后,监听器,保留默认值,默认侦听器负责接收端口 80 上的 HTTP 流量。
  • 可用区配置,选择负载均衡器的VPC为实例所在同一个VPC,然后至少选择两个可用区,我们在这里选择前两个,然后继续。
  • 负载均衡器的安全组,我们选择之前创建好的安全组,我选择的这个安全组允许所有人访问80端口。

我们继续,配置路由,我们新创建一个目标组,名称为alb-test,这里要注意,侦听器的默认规则将请求,路由到这个目标组中的已注册目标。

然后目标的类型可以选择实例/IP/lambda函数,我们之前介绍过应用程序负载均衡器支持配置IP作为目标,这也是ALB的一个功能特性,我们这次的演示就选择IP,然后下一步。

接下来注册目标,我们在上一步选择了IP地址作为目标,所以在这里需要输入IP地址,这里的目标是,侦听器的默认规则会将请求路由到此目标组中,我们就配置为server1作为默认规则发送请求的目标。将SERVER1实例的私有ip复制到这里,端口80保持不变,然后需要点击“添加到列表”。

好,我们已经将server1的ip成功添加到了默认规则会将请求路由到的目标组alb-test,然后下一步,审核,然后完成负载群衡器的创建。

到这里,应用程序负载均衡器已经创建完成了,我们可以通过“目前群组”-“目标”选项卡,可以查看实例注册的状态,一般需要几分钟。

如果实例状态是 initial,很可能是因为实例仍在注册过程中,或者未通过正常运行所需的运行状况检查。我们等待实例的状态为 healthy 后,便可测试负载均衡器。

好,可以看到目前实例的状态为“healthy”了,我们测试下负载均衡器是否可以正常工作。
通过复制负载均衡器的DNS名称至浏览器,然后回车,好,可以正常访问server1实例的nginx默认页index.html。

接下来我们访问“目标群组”,可以看到目前有一个名为“alb-test”的目标组,是刚刚创建应用程序负载均衡器时创建的,这个目标组注册了server1实例的IP为目标,侦听器的默认规则会将请求路由到此目标组中,也就是路由到server1实例,所以我们刚刚访问应用程序负载均衡器的dns可以打开server1实例的nginx默认页。

配置ALB的基于路径的路由功能

接下来我们要配置基于路径的路由功能,首先需要创建两个目标组,并分别将server1和server2实例注册到对应的目标组中。
创建目标组,“目标组名称”我们输入:images;“目标类型”我们选择IP,然后完成目标组的创建。然后将server1实例添加到images目标组中。

复制server1的私有iP,选择images目标组,然后选择下面的“目标”选项卡,点击“编辑” ,然后点击“+”,将server1实例的私有ip复制进去,然后点击“添加到列表”,然后点击“注册”。这样我们就将server1实例注册到了images目标组。

同样的方式我们在创建一个about目标组,将server2实例注册到该目标组。

创建目标组,目标组名称我们输入:about;目标类型我们选择IP,然后完成目标组的创建。然后我们将server2实例添加到about目标组中。复制server2的私有iP,选择about目标组,然后选择下面的“目标”选项卡,点击“编辑” ,然后点击“+”,将server2实例的私有ip复制进去,然后点击“添加到列表”,然后点击“注册”。这样我们就将server2实例注册到了about目标组。

好,我们刚才创建了images和about两个目标组,并将server1实例注册到了images目标组,将server2实例注册到了about目标组,
接下来我们要做的,就是在应用程序负载均衡器的监听器编辑相应的规则,来实现应用程序负载均衡器的基于路径的路由功能。

切换到负载均衡器控制台,然后选择刚创建的应用程序负载均衡器,选择监听器,然后点击“查看/编辑规则”

可以看到当前有一个规则,这个规则就是前面讨论的默认规则。

我们开始添加一个规则,点击“+”,然后“插入规则” ,添加条件选择“路径”,然后值输入“images” ,然后添加操作为“转发”,选择转发至images目标组。这个规则的意思是如果负载均衡器收到url请求包括images时,将请求转发至images目标组。

同样,我们在添加一个规则,点击“+”,然后“插入规则” ,添加条件选择“路径”,然后值输入“about” ,然后添加操作为“转发”,选择转发至about目标组。这个规则的意思是如果负载均衡器收到url请求包括about时,将请求转发至about目标组。

如果未满足侦听器的以上的两个任一规则条件,则将执行默认规则的操作。

好,我们现在就已经将应用程序负载均衡器的基于路径的路由功能全部配置完成了。

接下来我们测试一下,复制应用程序负载均衡器的dns至浏览器,回车,可以正常访问页面。直接访问负载均衡器的域名后,监听器的默认规则生效,并将请求转发至alb-test目标组,打开了server1的nginx默认的index.html页面。

我们修改下url,在负载均衡器的域名后添加/images/view.jpg ,然后回车,监听器将收到的URL中包含images的请求后成功转发到了images目标组,并成功显示了图片。

我们再次修改下url,为http://alb-test-627093616.ap-northeast-1.elb.amazonaws.com/about/about.txt,可以看到监听器将收到的URL中包含about的请求,成功转发到了about目标组,并成功显示了server2的about.txt的文字信息。

好,通过上面的三步测试可以确认我们的应用程序负载均衡器的基于路径的路由功能配置正确,且可正常提供服务。
以上就是我们今天的课程内容,希望能够给大家带来帮助。

希望此系列教程能为您通过 AWS解决方案架构师认证 Professional 认证考试带来帮助,如您有任何疑问,请联系我们:

AWS爱好者的网址是www.iloveaws.cn。
可以通过扫码加入【AWS爱好者】微信公众号,查看原创的AWS知识点相关文章
加入【AWS爱好者】微信群,和其他同学一起备考,以及探讨交流AWS相关知识
加入【AWS知识星球】持续学习。

我们今天的视频课程就到这里,感谢大家的观看,我们下一课程再见。

2020年7月20日

0 responses on "29-配置ALB基于路径的路由功能"

Leave a Message

error: Content is protected !!