全部产品
Search
文档中心

Web 应用防火墙:设置洪峰限流保证大促活动期服务的可用性

更新时间:Nov 06, 2024

通过在WAF上配置洪峰限流功能,仅放行固定QPS或者特定比例的流量到业务服务器,可以有效保护业务服务器在大促活动期间降低异常流量冲击。本文介绍如何设置洪峰限流。

前提条件

创建规则模板

通过创建规则模板,可以集中管理和统一应用规则,减少了重复配置的工作量。当新防护对象需要保护时,可以快速将现有规则模板应用到新的对象上,方便扩展。

步骤一:创建洪峰限流模板

  1. 登录Web应用防火墙3.0控制台。在顶部菜单栏,选择WAF实例的资源组和地域(中国内地非中国内地)。在左侧导航栏,选择防护配置 > Web基础防护在页面下方洪峰限流区域,单击新建模板

    说明

    如果您是第一次新建洪峰限流模板,您也可以在防护规则页面上方的洪峰限流卡片区域,单击立即配置

  2. 新建模板 - 洪峰限流面板,完成以下配置,单击确定

    配置项

    说明

    模板名称

    为该模板设置一个名称。

    长度为1~255个字符,支持中文和大小写英文字母,可包含数字、半角句号(.)、下划线(_)和短划线(-)。

    是否设置为默认模板

    选择是否将该模板设置为当前防护模块的默认模板。

    一个防护模块只允许设置一个默认模板。默认模板无需设置生效对象,默认应用于所有未关联到自定义规则模板的防护对象和对象组(包括后续新增、从自定义规则模板中移除的防护对象和对象组)。

    规则配置

    您可以单击新建规则,为当前洪峰限流模板新建自定义规则;或者忽略该设置,在创建规则模板后,再为模板新建规则。关于新建自定义规则的具体操作,请参见步骤二:创建洪峰限流模板中的规则

    生效对象

    从已添加的防护对象及对象组中,选择要应用该模板的防护对象防护对象组

    一个防护对象或对象组只能关联到当前防护模块下的一个模板。关于添加防护对象和对象组的具体操作,请参见配置防护对象和防护对象组

步骤二:创建洪峰限流模板中的规则

只有添加防护规则后,洪峰限流模板才具有防护作用。

  1. 自定义规则区域,定位到要新建规则的规则模板,单击操作列下的新建规则新建规则对话框,完成以下配置,单击确定

配置项

说明

规则名称

为该规则设置一个名称。

支持中文和大小写英文字母,可包含数字、半角句号(.)、下划线(_)和短划线(-)。

匹配条件

设置该规则要匹配的请求特征。

单击新增条件,添加一个条件。一个规则中最多可以添加五个条件。如果定义了多个条件,则只有当多个条件同时满足时,才算命中规则。

每个条件由匹配字段逻辑符匹配内容组成。配置示例如下:

  • 示例1:匹配字段URI逻辑符包含匹配内容/login.php,表示当被请求的路径包含/login.php时,请求命中该规则。

  • 示例2:匹配字段IP逻辑符属于匹配内容192.1X.XX.XX,表示当发起连接的客户端IP为192.1.XX.XX时,则请求命中该规则。

关于匹配字段和逻辑符的更多说明,请参见匹配条件说明

同时访问来源属于下列区域

WAF可以获取到请求的源ip,通过源ip可以判断流量归属地。如果不开启,则不区分生效对象的流量来源。在开启状态下,您可以选择中国境内的地区和中国境外的国家,未被选择的中国境内地区与境外国家的流量将不会经过洪峰限流中配置的规则。

限流方式

QPS(Queries Per Second)限流:是通过设定一个固定的每秒请求数(QPS)上限来限制进入服务器的流量。这种方法适用于需要严格控制请求数量以保证服务器稳定性的场景。

百分比限流:是通过设定一个流量通过的比例来限制进入服务器的流量。这种方法适用于需要在流量激增时动态控制请求量的场景,相对QPS限流更加灵活。

限流阈值

设置QPS限流值

  • 最大QPS:设置每秒允许通过的最大请求数。例如,设置为1000表示每秒最多处理1000个请求。

说明

QPS限流值,由于技术实现的复杂性和系统环境的动态变化,实际QPS可能会在设定值附近出现10%左右的波动。这种波动是限流算法允许的正常现象,旨在平衡系统性能和限流精度。建议定期监控实际流量表现,并根据具体需求做出相应调整,以确保最佳使用效果。

设置百分比限流值

  • 通过比例:设置允许通过的请求比例。例如,设置为50%表示只允许通过一半的请求,另一半将被阻断。

限流动作

选择当请求命中该规则时,要执行的防护动作。可选项:

  • 拦截:表示拦截命中规则的请求,并向发起请求的客户端返回拦截响应页面。

    说明

    WAF默认使用统一的拦截响应页面,您可以通过自定义响应功能,自定义拦截响应页面。更多信息,请参见设置自定义响应规则配置拦截响应页面

  • 观察:表示不拦截命中规则的请求,只通过日志记录请求命中了规则。您可以通过WAF日志,查询命中当前规则的请求,分析规则的防护效果(例如,是否有误拦截等)。

    重要

    只有开通日志服务,您才可以使用日志查询功能。更多信息,请参见开启或关闭日志服务

生效模式

  • 永久生效:指的是限流规则一旦启用,即始终生效,不会自动失效。适用于需要长期稳定控制流量的场景。

  • 按时间段生效:按时间段生效指的是限流规则在设定的特定时间段内生效,常用于短期活动或特定时段内的流量控制。支持选择时区与多个生效时间段

  • 按周期生效:按周期生效指的是限流规则在设定的周期内反复生效,每周的特定时间段。适用于定期活动或流量高峰时段的流量控制。支持以周为单位的周期与时区选择。

说明

示例1:假设您希望长期限制每秒最大请求数为1000,规则永久生效,并且只针对美国的流量进行限制,同时选择拦截作为防护动作。

  • 规则名称:长期QPS限流

  • 描述:长期限制每秒最大请求数为1000

  • 生效模式:永久生效

  • 最大QPS:1000

  • 访问来源区域:中国境外-北美洲-美国

  • 防护动作:拦截

示例2:假设您希望在大促期间,url包含shopping,每天的09:00到18:00限制每秒最大请求数为1000,并且只针对全部中国地区的流量进行限制,同时选择拦截作为限流动作。

  • 规则名称:大促限流

  • 描述:大促期间限流

  • 生效模式:按时间段生效

  • 匹配字段:URI包含shopping

  • 时间段:某年某月某日的09:00到某年某月某日的18:00

  • 最大QPS:1000

  • 访问来源区域:全部中国地区

  • 限流动作:拦截

  • 应用范围:选择特定的业务域名或路径

示例3:假设您希望在每周末的09:00到18:00限制每秒最大请求数为1000,并且只针对中国香港的流量进行限制,同时选择观察作为防护动作。

  • 规则名称:周末限流

  • 描述:每周末限流

  • 生效模式:按周期生效

  • 周期和时间段:每周六和周日的09:00到18:00

  • 最大QPS:1000

  • 时区:选择业务所在的时区或服务器所在的时区

  • 访问来源区域:中国香港

  • 限流动作:观察

编辑规则模板

业务或项目需求可能会随时间而变化,调整规则模板可以确保规则与当前需求保持一致。通过调整规则,可以提高系统或流程的效率和性能,减少资源浪费。

开启与关闭规则模板

成功创建规则模板后,您可以通过模板开关,开启或关闭模板。

更改规则模板

可以单击目标模板操作列的编辑。完成调整后,点击下方确认,保存此次变更。

删除规则模板

您可以删除不需要的规则模板,删除之前请确认该模板没有关联的防护对象。请单击目标模板操作列中的删除按钮,并在弹出提示中点击确定

重要
  • 一旦模板被删除,系统将自动使用默认模板来保护之前由该模板防护的对象。

  • 删除默认模板,如果默认模板中还存在防护对象,这些防护对象将不再受到洪峰限流保护。