开始使用

负载均衡器的功能是分配进入的网络或应用流量到多个源地址池,以确保高可用性和可靠性。比如在一个大型在线购物网站的环境中,负载均衡器可以确保用户访问请求被平衡地分配到多个服务器上,而不是集中在某一台服务器上。

操作流程

image
  1. 创建负载均衡器:负载均衡器的核心职能在于优化并智能调配到达的网络及应用程序流量至多个后端源地址,旨在确保服务的高可用性与稳定性。

  2. 配置负载均衡器:通过站点的DNS记录解析,来实现站点具备负载均衡能力。

创建负载均衡器

负载均衡通过实施精细的流量导向策略,可以保障用户访问请求能够均匀地分布至一个由多台服务器构成的资源池中,而非让任何单一服务器承受过载压力。

操作流程

image
  1. 选择源站:您的网站地址可能会同时指向多个服务器,这些服务器都可以处理请求并返回内容。因此您可以将这些服务器放入同一个源地址池中,并且可以根据需求创建多个源地址池,使用源地址池来作为您的源站。

  2. 选择负载均衡策略:负载均衡策略决定了流量如何分配到不同的源地址池中。支持主备调度、加权轮询的调度策略。

  3. 配置健康探测规则:为了确保后端服务器能够正常工作并及时发现有问题的源地址,您需要配置健康探测规则,健康探测可以简单了解服务器的状态。支持ICMP Ping、HTTP、HTTPS、TCP、UDP ICMP等探测协议。

  4. 创建自定义规则:如果您的业务需要配置一些自定义规则来优化流量管理。例如:为了安全性要求较高的金融交易部分,我们可以配置特定的规则让其始终使用优先级最高的源地址池。

  5. 配置概览:您依次配置完如上规则后,会展示到配置概览中,供您查看本次配置所有信息,方便配置参数校验,确认参数信息无误后,完成本次负载均衡配置。

步骤一:选择源站

您可以根据需求创建一个或多个源地址池作为源站来提高服务性能、确保高可用性。

  1. 登录ESA控制台

  2. 在左侧导航栏,单击站点管理

  3. 站点管理页面,单击目标站点名称,或对应站点操作列的详情

  4. 在左侧导航栏,选择流量 > 负载均衡

  5. 负载均衡页面,单击创建

  6. 创建负载均衡器页面,填入源站对应的信息。

    image

    参数

    说明

    域名

    表示您新建的负载均衡器的域名地址。该主机记录可以被边缘安全加速 ESA域名或四层加速应用引用,作为其域名/应用的源站。

    源地址池

    表示您新建的源地址池或者已有的源地址池。

    • 一个负载均衡器最多可包含20个源地址池。

    • 仅支持添加同一套餐的站点下创建的地址池。具体的请参考创建源地址池

    兜底地址池

    若负载均衡器下所有的源地址池都不可用,请求将被调度到兜底地址池,兜底地址池内的源服务器默认标记为永远健康,不受健康检查的影响。

  7. 单击下一步

步骤二:选择负载均衡策略

支持主备调度、加权轮询的调度策略,此处根据需求选择主备调度策略,基于源地址池的优先级进行调度。详细的负载均衡策略配置说明请参见负载均衡策略

  1. 选择负载均衡策略

    image

    策略类型

    适用场景

    说明

    主备调度

    对可靠性和数据一致性要求较高的场景。

    默认策略,支持对源地址池设置优先级,默认所有请求都将调度到优先级最高的源地址池,只有优先级最高的源地址池健康状态异常或被禁用时,请求才会被调度到优先级较低的源地址池。

    加权轮询

    系统并发请求较高,负载需按比例分散到多个源站集群进行处理的场景。

    支持对源地址池设置权重,权重范围为1-100,对应请求分配的百分比,边缘安全加速 ESA将根据权重将对应比例的用户请求调度到各个源地址池。

    若将源地址池的权重设置为0,则表示不将任何请求调度到该源地址池。

  2. (可选)开启会话保持。

    会话保持支持基于客户端IP和基于Cookie两种模式

    image

    默认关闭,该功能适用于需保持用户会话的状态的场景,例如在购物场景中,同一个用户的连续请求可能会被分发至不同的服务器,导致用户的登录信息、购物车中的商品信息等丢失,从而影响用户的购物体验。当您开启了会话保持功能后,可以使来自同一客户端的请求被转发到同一个源站上,保证用户的体验和数据的一致性。

  3. 异常重试策略。

    用户请求可能因网络波动等原因导致回源失败,支持以下两种回源重试策略。

    • 源地址池内重试:默认策略,当回源失败时,选择同一源地址池内的其他源服务器进行重试。

    • 跨源地址池重试:回源失败时,进入下一优先级源地址池,选取池中健康的源服务器进行重试。

  4. 单击下一步

步骤三:配置健康探测规则

通过ICMP Ping、HTTP、HTTPS、TCP、UDP ICMP等探测协议,主动探测源站健康状态,若探测失败则屏蔽异常源站。

  1. 健康探测页面,选择探测协议类型

  2. 根据业务需求,填写对应的参数。

    image

    ICMP Ping

    探测源服务器的网络连通性,判断源站是否可达。

    配置项

    说明

    高级配置

    探测时间间隔(秒)

    默认60秒。取值范围:10秒-3600秒。

    超时时间(秒)

    默认5秒,取值范围:1秒-10秒。

    健康判定

    不健康阈值

    默认值为1,即默认一个探测周期决策源服务器健康状态。 配置不健康阈值为N后,对于一个特定的源服务器只有连续N个探测周期结果都为不健康,才会将处于健康状态的源服务器修改为不健康。取值范围:1-5。

    健康阈值

    默认值为1,即默认一个探测周期决策源服务器健康状态。 配置健康阈值为N后,对于一个特定的源服务器只有连续N个探测周期探测结果都为健康,才会将处于不健康状态的源服务器修改为健康。取值范围:1-5。

    HTTP/HTTPS

    适用于Web应用,支持对HTTP/HTTPS探测请求的响应状态码等做识别、判断。

    • 监视器里配置的Host:优先级最高。如果在监视器配置中指定了Host头,则使用该Host头进行健康探测。

    • 源服务器的Host:优先级第二。如果监视器配置中没有指定Host头,则使用源服务器的Host头进行健康探测。

    • LB的域名:作为兜底。如果前两个选项都不可用,则使用负载均衡器(LB)的域名进行健康探测。

    配置项

    说明

    探测URL的路径

    设置需要探测的路径,例如/health/test.txt,默认/

    端口

    HTTP协议默认80,HTTPS默认端口443,端口范围:1-65535。

    高级配置

    探测时间间隔(秒)

    默认60秒。取值范围:10秒-3600秒。

    请求方法

    支持GET和HEAD方法,默认使用HEAD方法。

    超时时间

    表示探测请求超时时间,超时则认为探测失败,默认5秒,取值范围:1秒-10秒。

    301/302重定向跟随

    表示探测请求是否允许301、302跟随,默认不开启。启用后最高跟随3次。

    添加请求头

    探测请求支持添加请求头,最多支持10个。不支持设置User-Agent请求头。

    健康判定

    预期状态码

    默认2xx,若收到对应的状态码则认为源站状态正常,否则便认为不正常。支持指定多个状态码或以‘x’为通配符的正则表达式,取值范围为100-9999。状态码需以一个或多个连续的数字打头,数字后面跟一个或多个连续的‘x’通配符,例如2xx,200,33xx,222x,8888。

    预期响应内容

    字符串形式,源站响应的内容匹配中该字符串即认为源站正常,否则认为不正常。 最多匹配前100KB的响应数据。

    不健康阈值

    默认值为1,即默认一个探测周期决策源服务器健康状态。 配置不健康阈值为N后,对于一个特定的源服务器只有连续N个探测周期结果都为不健康,才会将处于健康状态的源服务器修改为不健康。取值范围1-5。

    健康阈值

    默认值为1,即默认一个探测周期决策源服务器健康状态。 配置健康阈值为N后,对于一个特定的源服务器只有连续N个探测周期探测结果都为健康,才会将处于不健康状态的源服务器修改为健康。取值范围1-5。

    TCP

    适用于基于TCP协议开发的应用,根据TCP建连的结果来判断源服务器的健康状态。

    配置项

    说明

    端口

    进行TCP探测请求访问的端口。

    高级配置

    探测时间间隔(秒)

    默认60秒。取值范围:10秒-3600秒。

    超时时间(秒)

    默认5秒,取值范围:1秒-10秒。

    不健康阈值

    默认值为1,即默认一个探测周期决策源服务器健康状态。 配置不健康阈值为N后,对于一个特定的源服务器只有连续N个探测周期结果都为不健康,才会将处于健康状态的源服务器修改为不健康。取值范围:1-5。

    健康阈值

    默认值为1,即默认一个探测周期决策源服务器健康状态。 配置健康阈值为N后,对于一个特定的源服务器只有连续N个探测周期探测结果都为健康,才会将处于不健康状态的源服务器修改为健康。取值范围:1-5。

    UDP ICMP

    适用于基于UDP协议开发的应用。选择使用UDP ICMP协议进行健康探测时:负载均衡器会在超时时间内检测端口是否返回ICMP Port Unreachable报文(用于表明目标端口不可达),若没有检测到则该探测周期结果为健康,若检测到则该探测周期结果为不健康。

    配置项

    说明

    端口

    进行UDP探测请求访问的端口。

    高级配置

    探测时间间隔(秒)

    默认60秒。取值范围:10秒-3600秒。

    超时时间(秒)

    默认5秒,取值范围:1秒-10秒。

    不健康阈值

    默认值为1,即默认一个探测周期决策源服务器健康状态。 配置不健康阈值为N后,对于一个特定的源服务器只有连续N个探测周期结果都为不健康,才会将处于健康状态的源服务器修改为不健康。取值范围:1-5。

    健康阈值

    默认值为1,即默认一个探测周期决策源服务器健康状态。 配置健康阈值为N后,对于一个特定的源服务器只有连续N个探测周期探测结果都为健康,才会将处于不健康状态的源服务器修改为健康。取值范围:1-5。

    如果您不希望边缘安全加速 ESA的节点对源服务器发起任何探测请求,可以选择不启用。使用该策略将无法感知源服务器的健康状态并及时摘除异常源服务器,相较于启用主动探测可能出现更多请求失败的情况。建议您开启主动探测以保障您的业务可用性。

    说明

    不启用:不进行任何健康探测,不推荐。

  3. 单击下一步

步骤四:创建自定义规则

自定义规则支持使用客户端来源IP、HTTP请求头等字段进行规则匹配,并为匹配中规则单独指定负载均衡的功能设置。具体请参见创建自定义规则

  1. 填写规则名称

  2. 请求匹配规则配置。具体请参见支持字段和运算符

    image

    规则参数说明

    匹配类型

    支持的匹配运算符

    匹配值

    是否支持区分大小写

    说明

    IP源地址

    • 等于

    • 不等于

    • 包含以下各项

    • 不包含以下各项

    客户端IP地址。如:1.1.1.1。

    客户端来源IP。

    HTTP版本

    可选值:

    [HTTP/1.0|HTTP/1.1|HTTP/2.0|HTTP/3.0]。

    HTTP版本。

    Cookie值

    • 等于

    • 不等于

    • 包含

    • 不包含

    • 与正则表达式匹配

    • 与正则表达式不匹配

    支持输入指定Cookie参数,对指定Cookie参数的值进行匹配,例如:参数session的值330688。

    HTTP Cookie。

    HTTP请求头

    支持输入指定标头名称,对指定请求标头的值进行匹配,例如:标头session的值330688。

    HTTP请求头部。

    主机名

    • 等于

    • 不等于

    • 包含字符串

    • 不包含字符串

    • 字符串开头为

    • 字符串结尾为

    • 字符串开头不是

    • 字符串结尾不是

    • 与正则表达式匹配

    • 与正则表达式不匹配

    • 值为其中任意一项

    • 值不为其中任意一项

    例如:[“www1.alibaba.com”,“www2.alibaba.com”]。

    请求的访问Host。

    URI

    例如:/articles/index?section=330688&expand=comments。

    HTTP URI。

    URI查询字符串

    完整的查询字符串,例如:section=330688&expand=comments。

    URI查询字符串。

    URI路径

    例如:/articles/index

    HTTP URI Path。

  3. 选择响应指定内容修改负载均衡调度策略

    image

  4. 单击确认 > 下一步

步骤五:配置概览

配置概览展示了负载均衡器的整体配置,单击完成后完成负载均衡器配置。

配置负载均衡器

  1. 登录ESA控制台

  2. 在左侧导航栏,单击站点管理

  3. 站点管理页面,单击目标站点名称,或对应站点操作列的详情

  4. 在左侧导航栏,选择DNS > 记录

  5. 记录页面,单击添加记录,添加主机记录,源站选择负载均衡类型,在下拉框中选择刚创建的负载均衡器。

    image

  6. 单击下一步,选择需要加速的场景后单击完成

    image

    应用场景

    说明

    网站页面

    适用于加速小文件和API请求动静混合的网站业务。例如:您的个人博客网站、小型UGC社区、小型电商独立站等场景。

    API接口

    适用于加速纯动态的API接口类业务,该类业务一般无需缓存。例如:账号密码校验接口、下单支付接口、日志上传接口、数据实时同步等场景。

    图片视频

    适用于加速纯静态文件的业务。例如:大量的图片下载、在线视频点播、游戏安装包等场景。