为了节省成本,有可能将多个应用共享(复用)一个负载均衡实例,使用同一个公网IP地址和域名对外暴露,但仍希望通过转发策略将请求转发到对应的应用。本文介绍多应用共享负载均衡实例时,如何使用端口实现流量的转发。
背景信息
在ECS集群中,使用同一个端口的服务,仅HTTP监听协议支持流量分发。
多应用共享负载均衡实例最简单的方式是为不同的服务器组配置不同的监听端口。如下图所示,两个应用所属的服务器组分别监听80和81端口,CLB接收到流量后,会根据目的端口进行流量分发,如果目的端口是80端口,会转发到服务器组A所属的应用App1,如果目的端口是81端口,则会转发到服务器组B所属的应用App2。
例如有两个应用:一个提供订单查询的功能的应用User,一个提供用户登录的应用Order,这两个应用对外提供同一个公网IP地址,并且都绑定在一个域名上。您可以通过为两个应用绑定不同的监听端口来实现流量分发。
操作流程
下面介绍为2个不同的应用绑定同一个CLB,通过配置不同的端口号实现流量分发的流程。
创建一个CLB实例edas-test-clb。具体操作,请参见创建实例。
在EDAS控制台创建ECS类型的应用spring-cloud-provider,参考应用独享负载均衡实例中的同名应用的配置过程为该应用配置公网负载均衡,监听协议依然选择TCP,端口为80。
为spring-cloud-consumer应用配置公网负载均衡,配置过程与spring-cloud-provider应用类似,只是在配置端口时将端口配置为81。
配置完成后,假如CLB的IP地址为
123.1.XX.XX
,可以使用http://123.1.XX.XX:80
访问spring-cloud-provider应用,使用http://123.1.XX.XX:81
访问spring-cloud-consumer应用。
为第一个应用绑定CLB并配置监听端口
在使用一个CLB实例的不同端口将请求转发至不同的应用的场景下,您需要先为一个应用绑定CLB实例,并设置监听端口。
- 登录EDAS控制台,在左侧导航栏单击 。
- 在应用列表页面的顶部菜单栏选择地域,并在页面上方选择微服务空间,在集群类型列表中选择ECS集群,然后在应用列表中单击目标应用名称。
- 在基本信息页签的应用设置区域,单击负载均衡(公网)右侧的添加。说明 如果您已经配置过负载均衡实例,则在此处会显示负载均衡实例的IP和端口信息,您可单击修改进入配置页面修改负载均衡实例信息,或单击解绑解除与当前负载均衡实例的绑定。
在添加负载均衡(公)配置向导中配置负载均衡实例。
在选择负载均衡页签中选择负载均衡类型为CLB,然后在负载均衡(公网)的下拉列表中选择您创建的CLB实例,然后单击下一步。
在选择配置监听页签中配置监听端口,然后单击下一步。
如果想使用为选定CLB实例配置过的监听端口,选择选择已有监听端口,并在下方选择已有的监听端口。
如果没有为选定的CLB实例配置过监听端口,或想为当前应用配置一个新的监听端口,选择添加新监听端口,并为该CLB实例新建一个监听。
监听参数说明:
参数
说明
协议
选择TCP。关于监听的更多信息以及如何创建TCP监听的具体操作,请参见添加TCP监听。
说明TCP协议适用于注重可靠性,对数据准确性要求高,速度可以相对较慢的场景,如文件传输、发送或接收邮件、远程登录。当您选择的CLB实例的监听端口所使用的协议为TCP时,无法绑定转发策略。
前端端口号
负载均衡实例对外提供服务的端口。
重要如果想添加的前端端口号已经被其他监听协议占用,请另外设置一个端口号,或者需登录SLB控制台删掉该监听端口后,再在EDAS控制台上重新创建。
后端端口号
应用的服务端口,不可设置。
在配置服务器组与转发策略页签中配置SLB实例的虚拟服务器组,然后单击下一步。
参数
描述
默认服务器组
默认服务器组不支持配置转发策略,所以在使用端口实现流量分发时,不可以选择默认服务器组,只能选择虚拟服务器组。
现有虚拟服务器组
如果想使用为选定的SLB实例创建过的虚拟服务器组,选择现有虚拟服务器组,并在下方选择已有的虚拟服务器组。
说明同一个虚拟服务器组只允许与一个应用或应用分组进行绑定。
新建虚拟服务器组
如果没有为选定的SLB实例配置过虚拟服务器组,或想为当前应用配置一个新的虚拟服务器组,选择新建虚拟服务器组,并输入虚拟服务器组名称。
- 在确定变更页签中查看设置的SLB实例信息,无误后,单击确认变更。
验证当前应用的绑定的负载均衡实例IP和端口能否正常访问第一个应用,具体操作,请参见结果验证。
为第二个应用绑定CLB并配置监听端口
登录EDAS控制台,在ECS集群应用的基本信息页签的应用设置区域,重复为第一个应用绑定CLB并配置监听端口的操作,为第二个应用绑定同一个CLB实例,并设置不同于第一个应用的监听端口。