阿里云网络型负载均衡NLB(Network Load Balancer)支持TCP、UDP和TCPSSL协议,提供了强大的四层负载均衡能力。如果您需要快速创建一个NLB实例,并将来自客户端的访问请求转发至后端服务器,请参考本文操作实现IPv4服务的负载均衡。
前提条件
您已在华东2(上海)地域创建了一个专有网络VPC1,并分别在可用区E和可用区G创建了一个交换机VSW1和VSW2。具体操作,请参见创建专有网络和交换机。
您已分别在VSW1和VSW2创建ECS01和ECS02实例,且ECS01和ECS02实例中部署了应用服务。
关于创建ECS实例,请参见自定义购买实例。
本文ECS01和ECS02部署测试应用示例如下:
本文VPC实例的相关配置如下所示,仅供参考。
本文ECS实例的相关配置如下所示,仅供参考。
步骤一:创建NLB实例
- 登录网络型负载均衡NLB控制台。
在顶部菜单栏,选择NLB实例所属的地域。
在实例页面,单击创建网络型负载均衡。
在网络型负载均衡(按量付费)购买页面,完成以下配置。然后单击立即购买并根据控制台提示完成实例开通。
此处仅列出和本文强相关的配置项,其他未列出的配置项使用默认值。关于参数的更多信息,请参见创建和管理NLB实例。
配置
说明
地域
选择实例所属的地域。
实例网络类型
选择实例网络类型,系统会根据您的选择分配私网或公网服务地址。本文选择公网。
VPC
选择实例所属的VPC。
可用区
至少选择2个可用区。本文选择上海 可用区E及该可用区下的交换机,上海 可用区G及该可用区下的交换机。
协议版本
选择实例的协议版本。本文选择IPv4。
实例名称
自定义实例名称。
资源组
选择所属的资源组。
服务关联角色
首次创建NLB实例时,需要单击创建服务关联角色,创建一个名称为AliyunServiceRoleForNlb的服务关联角色。系统会为该角色添加名称为AliyunServiceRolePolicyForNlb的权限策略,授予NLB拥有访问其他云产品实例的权限。更多操作,请参见网络型负载均衡NLB系统权限策略参考。
步骤二:创建服务器组
在左侧导航栏,选择 。
在服务器组页面,单击创建服务器组。
在创建服务器组对话框中,完成以下配置,然后单击创建。
关键配置信息可参考下表,其他未列出的配置项使用默认值。关于参数的更多信息,请参见创建服务器组。
配置
说明
服务器组类型
服务器组挂载的后端服务器类型。本文选择服务器类型。
服务器组名称
输入服务器组名称。
VPC
从VPC下拉列表中选择一个VPC,只有该VPC下的服务器可以加入到该服务器组。
选择后端协议
选择一种后端协议。本文选择TCP。
选择调度算法
选择一种调度算法。本文选择加权轮询。
健康检查
开启健康检查,健康检查保持默认配置。
待服务器组创建成功后,单击其实例ID,然后单击后端服务器页签。
单击添加后端服务器,在添加后端服务器面板,选中ECS01与ECS02,单击下一步。
在配置端口和权重配置向导,配置端口为80,权重默认值为100,然后单击确定。
步骤三:配置监听
在左侧导航栏,选择 。
在实例页面,单击目标实例右侧的创建监听。
在负载均衡业务配置向导配置监听,配置以下参数,然后单击下一步。
此处仅列出和本文强相关的配置项,其他未列出的配置项使用默认值。关于配置监听的更多操作,请参见添加TCP监听。
参数
描述
选择监听协议
选择监听的协议类型。本文选择TCP。
监听端口
用来接收请求并向后端服务器进行请求转发的监听端口。本文输入80。
监听名称
输入自定义监听名称。
高级配置
本文保持默认,可单击修改进行设置。
在选择服务器组配置向导,选择服务器类型及服务器类型下的目标服务器组,查看已添加的后端服务器信息,然后单击下一步。
在配置审核配置向导,确认配置信息,然后单击提交。
单击知道了返回监听页签,查看目标监听的健康检查状态列为正常时,表示后端服务器ECS01和ECS02实例可以正常处理NLB实例转发的请求。
步骤四:设置域名解析
实际业务场景中,建议您使用自有域名,通过CNAME解析的方式将自有域名指向NLB实例域名。
在左侧导航栏,选择 。
在实例页面,复制已创建的NLB实例的DNS名称。
执行以下步骤添加CNAME解析记录。
说明对于非阿里云注册域名,需先将域名添加到云解析控制台,才可以进行域名解析设置。具体操作,请参见域名管理。如果您是阿里云注册的域名,请直接执行以下步骤。
登录域名解析控制台。
在权威域名解析页面,找到目标域名,在操作列单击解析设置。
在解析设置页面,单击添加记录。
在添加记录面板,配置以下信息完成CNAME解析配置,然后单击确定。
配置
说明
记录类型
在下拉列表中选择CNAME。
主机记录
您的域名的前缀。本文输入@。
说明创建域名为根域名时,主机记录为@。
解析请求来源
选择默认。
记录值
输入域名对应的CNAME地址,此处为NLB实例的DNS名称。
TTL
全称Time To Live,表示DNS记录在DNS服务器上的缓存时间,本文使用默认值。
步骤五:验证结果
测试NLB可用性:
以任意一台可以访问公网的Linux客户端为例。如果未安装telnet,以CentOS系统为例可以参考执行
yum install -y telnet
安装telnet。执行
telnet 域名 端口
命令,收到回复报文Connected to nlb-...,则表示NLB可以将请求转发至后端服务器。Trying *.*.*.*... Connected to www.example.com. Escape character is '^]'.
通过浏览器输入域名,例如
http://域名
,可以看到类似下图所示,表示NLB可以将请求转发至后端服务器。
(可选)故障模拟:
停用ECS01服务。在ECS01中执行
systemctl stop nginx.service
停用应用。客户端再次执行
telnet 域名 端口
命令,仍然收到回复报文Connected to nlb-...Trying *.*.*.*... Connected to www.example.com. Escape character is '^]'.
通过浏览器输入域名,例如
http://域名
,可以看到类似下图所示,表示NLB可以将请求转发至后端服务器。启用ECS01服务,停用ECS02服务。在ECS01中执行
systemctl start nginx.service
重新启动应用,在ECS02中执行systemctl stop nginx.service
停用应用。客户端再次执行
telnet 域名 端口
命令,仍然收到回复报文Connected to nlb-...Trying *.*.*.*... Connected to www.example.com. Escape character is '^]'.
通过浏览器输入域名,例如
http://域名
,可以看到类似下图所示,表示NLB可以将请求转发至后端服务器。如上表明后端单台服务器故障不影响NLB可用性。
释放资源
清理ECS、安全组等资源:
删除ECS01实例及其安全组:
登录云服务器ECS实例控制台,顶部选择实例所属地域,单击ECS01实例右侧的,弹出的窗口中选择释放,立即释放实例并确认。
登录云服务器ECS安全组控制台,顶部选择实例所属地域,勾选ECS01自定义安全组并单击删除,删除安全组。
参照上述步骤,删除ECS02实例及对应安全组资源。
删除域名解析记录;
删除域名解析记录,请参见删除域名解析记录。
清理NLB资源:
登录网络型负载均衡NLB控制台,顶部选择实例所属地域,单击实例右侧的,弹出的窗口中选择释放并确认。
登录网络型负载均衡NLB控制台,顶部选择实例所属地域,在服务器组菜单单击服务器组右侧的,弹出的窗口中选择删除并确认。
清理VPC资源:
登录专有网络VPC控制台,顶部选择实例所属地域。
单击实例右侧删除,删除时并且勾选强制删除,完成VPC与交换机资源的删除。
相关文档
了解NLB的应用场景、组成等信息,请参见什么是网络型负载均衡NLB。
了解NLB的功能特性,请参见功能特性。
了解NLB的配额及提升配额方式,请参见使用限制。
了解NLB支持的地域信息,请参见NLB支持的地域与可用区。
了解NLB计费文档,请参见NLB产品计费。