NLB快速实现IPv4服务的负载均衡

阿里云网络型负载均衡NLB(Network Load Balancer)支持TCP、UDP和TCPSSL协议,提供了强大的四层负载均衡能力。

为了实现IPv4服务的负载均衡,需要快速创建一个NLB实例,并将来自客户端的访问请求转发至后端服务器。

操作流程

第一步, 准备工作

搭建负载均衡服务前,需要根据业务需求规划NLB实例的地域,创建专有网络VPC和云服务器ECS实例等。

1)已经规划了NLB实例的地域。

确保ECS实例的地域和NLB实例的地域相同,并且ECS实例与NLB实例属于同一个VPC。

建议将ECS实例部署在不同的可用区内,提高业务的可用性。

2)已经创建了VPC。

创建NLB实例前,确保实例所选可用区的交换机中预留了足够的可用IP。

创建新实例时会从每个指定的交换机中扣取3个IP地址,包含2个Local IP(用于与后端服务器交互并进行健康检查)和一个VIP(用于对外提供服务,创建后IP不会变化),如果IP不足会出现报错并且无法创建实例。

注意:为确保NLB各项弹性能力可以使用,建议在NLB实例所在的每个交换机内预留至少8个IP地址。

3)已经在VPC中创建了2台ECS实例。

ECS01和ECS02实例作为NLB实例的后端服务器,且在ECS01和ECS02实例中部署nginx。

第二步, 创建NLB实例

使用负载均衡服务时,需要先创建一个NLB实例,每一个NLB实例代表一个负载均衡服务实体,用于接收来自客户端的请求,并将请求分发至后端服务器。

1)登录"网络型负载均衡NLB控制台"。

2)在顶部菜单栏,选择NLB实例所属的地域。

3)在"实例"页面,单击"创建网络型负载均衡"。

4)在网络型负载均衡(按量付费)购买页面,完成以下配置。

"地域"选择实例所属的地域;

"实例网络类型"选择实例网络类型,系统会根据选择的实例网络类型分配"私网"或"公网"服务地址;

私网:每个可用区提供一个私网IP,只能通过阿里云内部网络访问NLB,无法从互联网访问。

公网:每个可用区提供一个公网IP和一个私网IP。公网NLB默认通过弹性公网IP(EIP)提供公网能力,选择公网将会收取弹性公网IP实例费、带宽或流量费用。弹性公网IP对外提供服务,支持通过互联网访问NLB。私网IP,支持云上VPC内的ECS访问NLB。

"VPC"选择实例所属的VPC;

"可用区":NLB支持多可用区部署,若当前地域支持2个及2个以上的可用区,为保障业务高可用,至少选择2个可用区,且NLB不会额外收取可用区的费用。然后分别在所选可用区内选择交换机,如果可用区下无交换机,根据控制台提示创建交换机。当实例网络类型选择公网时,需分别在所选可用区内选择EIP。

如果可用区下无EIP,可保持默认选项自动分配公网IP:系统将自动创建按量付费(按使用流量计费)的BGP多线默认安全防护EIP,并绑定至NLB实例上。

如果选择已有的EIP:可以指定已创建的EIP并绑定至新购的NLB实例上。

仅可绑定暂未加入共享带宽的按量付费(按使用流量计费)的已购EIP。

同一个NLB实例不同可用区分配的EIP类型需保持一致。

"协议版本"选择实例的协议版本;

IPv4:表示NLB实例仅支持客户端使用IPv4地址访问。

双栈:表示NLB实例支持客户端同时使用IPv4和IPv6地址访问。

"加入共享带宽"选择是否要加入共享带宽;

如果不选中加入共享带宽,则"公网计费方式"采用"按流量计费"。

如果选中加入共享带宽,则需选择共享带宽包,如果没有共享带宽包可选择,可单击"购买共享带宽包"并完成购买,然后返回NLB购买页面单击"刷新图标",即可选择共享带宽包。建议购买后付费共享带宽。该参数仅在实例网络类型为公网时生效。

"公网计费方式"默认选项为"按流量计费":带宽峰值不作为业务承诺指标,仅作为参考值和带宽上限峰值。当出现资源争抢时,带宽峰值可能会受到限制。该参数仅在实例网络类型为公网,且未选择加入共享带宽时有效。

"实例名称":自定义实例名称;

"资源组"选择所属的资源组;

"服务关联角色":首次创建NLB实例时,需要单击"创建服务关联角色"关联服务角色。

5)单击"立即购买",然后根据控制台提示完成实例购买。

6)返回"实例"页面,选择对应的地域即可看到新创建的实例。

第三步, 创建服务器组

需要创建服务器组并添加后端服务器来接收NLB转发的客户端请求。

1)在左侧导航栏,选择"网络型负载均衡 NLB > 服务器组"。

2)在"服务器组"页面,单击"创建服务器组"。

3)在"创建服务器组"对话框中,完成以下配置,然后单击"创建"。

"服务器组类型"选择一种服务器组类型;

服务器类型:支持添加ECS、ENI、ECI类型的后端服务器。

IP类型:支持添加IP类型的后端服务器。

"服务器组名称"输入服务器组名称。

"VPC":从VPC下拉列表中选择一个VPC,只有该VPC下的服务器可以加入到该服务器组。

"选择后端协议"选择一种后端协议;

"选择调度算法"选择一种调度算法;

"选择资源组"选择归属的资源组。

"标签"设置标签键和标签值。

"IPv6挂载":开启或关闭IPv6挂载功能。

开启IPv6挂载功能后,服务器组支持挂载IPv4、IPv6类型的后端服务器。

不开启IPv6挂载功能时,服务器组仅支持挂载IPv4类型的后端服务器。

当服务器组选择的VPC未开启IPv6功能时,默认不开启IPv6挂载功能。

"连接优雅中断":开启或关闭连接优雅中断。

保持默认配置,即关闭连接优雅中断。

启用连接优雅中断后,可以在移除后端服务器或者健康检查失败后,使现有连接在一定时间内正常传输。

"客户端地址保持":开启或关闭客户端地址保持。

保持默认配置,即开启客户端地址保持。

开启客户端地址保持后,后端服务器可以获取客户端IP地址。

IP类型的服务器组不支持自动携带客户端源地址,在监听中搭配ProxyProtocol实现源地址获取。

"全端口转发":开启或关闭全端口转发。

"全端口转发""配置健康检查""健康检查配置"保持默认配置,即关闭全端口转发,开启健康检查,"健康检查端口"选择"使用后端服务器端口"。

开启全端口转发,"配置健康检查""健康检查配置"保持默认配置,即开启健康检查,"健康检查端口"选择"使用后端服务器端口"。

开启后添加后端服务器无需指定端口,NLB将按照前端请求端口转发流量至后端服务器。

当监听开启全端口功能时,后端服务器组需开启该功能。

第四步, 配置监听

需要为实例配置监听。监听负责检查连接请求,并根据调度算法将客户端请求分发至后端服务器。

1)在左侧导航栏,选择"网络型负载均衡 NLB > 实例"。

2)在"实例"页面,单击之前创建的实例ID。

3)单击"监听"页签,在"监听"页签单击"快速创建监听"。

4)在"快速创建监听"对话框中,配置以下参数,然后单击"确定"。

"选择监听协议"选择监听的协议类型;

"监听端口"设置前端协议端口,即用来接收请求并向后端服务器进行请求转发的监听端口;

可以直接单击常用监听端口快捷填写,或者输入端口。

监听端口范围:1~65535。一般输入80。

"转发的后端服务器组"选择服务器类型及服务器类型下的后端服务器组。一般选择之前创建的后端服务器组。

第五步, 设置域名解析

NLB支持将您拥有的常用域名通过CNAME方式解析到NLB实例的公网服务域名上,可以更加方便地访问各种网络资源。

1)在左侧导航栏,选择"网络型负载均衡 NLB > 实例"。

2)在"实例"页面,复制已创建的NLB实例的DNS名称。

3)执行以下步骤添加CNAME解析记录。

登录"域名解析控制台" ------> 在"域名解析"页面单击"添加域名" ------> 在"添加域名"对话框中输入主机域名,然后单击"确认" ------> 在目标域名的"操作"列单击"解析设置" ------> 在"解析设置"页面,单击"添加记录" ------> 在"添加记录"面板,配置以下信息完成CNAME解析配置,然后单击"确认"。

注意:主机域名需已完成TXT记录验证。

在添加记录面板,配置以下信息完成CNAME解析配置:

"记录类型":在下拉列表中选择CNAME。

"主机记录":您的域名的前缀。一般输入@。

"解析请求来源"选择默认。

"记录值"输入域名对应的CNAME地址,即复制的NLB实例的DNS名称。

"TTL":全称Time To Live,表示DNS记录在DNS服务器上的缓存时间,一般使用默认值。

新增CNAME记录实时生效,修改CNAME记录取决于本地DNS缓存的解析记录的TTL到期时间,一般默认为10分钟。

添加时如遇添加冲突,换一个解析域名。

第六步, 访问测试

测试后端服务器是否可以正常接收和处理NLB监听转发的请求。

1)获取测试访问域名:

如果设置了域名解析,使用了自有域名进行CNAME解析到NLB域名,则测试访问域名为自有域名。

如果未使用自有域名,可登录"网络型负载均衡NLB控制台",顶部选择实例所属地域,在目标NLB实例DNS名称列复制NLB实例的域名,作为测试访问域名。

2)测试NLB可用性:

以任意一台可以访问公网的Linux客户端为例。如果未安装telnet,以CentOS系统为例可以执行命令"yum install -y telnet"安装telnet。

执行"telnet 域名 端口"命令,若收到回复报文"Connected to nlb-*********.*******.nlb.aliyuncs.com.",则表示NLB可以将请求转发至后端服务器。

通过浏览器输入http://域名,可以正常访问,表示NLB可以将请求转发至后端服务器。

3)故障模拟:

停用ECS01服务。

客户端再次执行"telnet 域名 端口"命令,仍然收到回复报文"Connected to nlb-*********.*******.nlb.aliyuncs.com."。

通过浏览器输入http://域名,可以正常访问,表示NLB可以将请求转发至后端服务器。

启用ECS01服务,停用ECS02服务。

客户端再次执行"telnet 域名 端口"命令,仍然收到回复报文"Connected to nlb-*********.*******.nlb.aliyuncs.com."。

通过浏览器输入http://域名,可以正常访问,表示NLB可以将请求转发至后端服务器。

如上表明后端单台服务器故障不影响NLB可用性。

相关推荐
大树883 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质4 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
小宇宙Zz4 小时前
Maven依赖冲突
java·服务器·maven
Inhand陈工5 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智5 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_5 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
古城小栈5 小时前
Unix 与 Linux 异同小叙
linux·服务器·unix
施努卡机器视觉6 小时前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
程序猿阿伟6 小时前
《Chrome离线扩展安装的底层逻辑与场景落地指南》
服务器·网络·chrome