请选择
边缘加速
  • 站点加速
    • 概述
    • Quickly Import and Export Site Configuration
    • 访问控制
      • Token 鉴权
    • 智能加速
    • 文件优化
      • 智能压缩
    • 网络优化
      • HTTP/2
      • HTTP/3(QUIC)
        • 概述
        • 启用 HTTP/3
        • QUIC SDK
          • SDK 概览
          • SDK 下载和集成指引
          • 代码示例
            • Android
            • iOS
          • API 文档
            • Android
            • iOS
      • IPv6 访问
      • 最大上传大小
      • WebSocket
      • 携带客户端 IP 头部回源
      • 携带客户端 IP 地理位置头部回源
      • 开启 gRPC
    • URL 重写
      • 访问 URL 重定向
      • 回源 URL 重写
    • 修改头部
      • 修改 HTTP 节点响应头
      • 修改 HTTP 回源请求头
    • 自定义错误页面
    • 请求与响应行为
      • 请求处理顺序
      • EdgeOne 默认 HTTP 回源请求头
      • EdgeOne 默认 HTTP 响应头
    • Media Services
      • Audio and Video Pre-pulling
      • Just-in-Time Image Processing
      • Just-in-Time Media Processing
      • VOD Media Origin
  • 四层代理
    • 概述
    • 新建四层代理实例
    • 修改四层代理实例配置
    • 停用/删除四层代理实例
    • 批量配置转发规则
    • 获取客户端真实IP
      • 通过 TOA 获取 TCP 协议客户端真实 IP
      • 通过 Proxy Protocol V1/V2 协议获取客户端真实 IP
        • 概述
        • 方式一:通过 Nginx 获取客户端真实 IP
        • 方式二:在业务服务器解析客户端真实 IP
        • Proxy Protocol V1/V2 获取的客户端真实 IP 格式
      • 通过 SPP 协议传递客户端真实 IP
  • 边缘 DNS
    • 托管域名 DNS 解析
      • 修改 DNS 服务器
      • 配置域名 DNS 解析记录
      • DNS 高级配置
    • 接入加速域名
      • 添加加速域名
      • 站点/域名归属权验证
      • 修改 CNAME 解析
    • 别称域名
      • 概述
      • 配置指南
      • 通过别称域名批量接入 SaaS 建站域名
      • 别称域名实现业务的容灾
    • 流量调度
      • 流量调度管理
    • 源站配置
      • 回源配置
        • 配置回源 HTTPS
        • Host Header 重写
        • 回源请求参数设置
        • 回源跟随重定向
        • HTTP/2 回源
        • 分片回源
      • 负载均衡
        • 概述
        • 快速创建负载均衡实例
        • 健康检查策略介绍
        • 查看源站健康状态
        • 相关参考
          • 负载均衡相关概念
          • 请求重试策略介绍
      • 源站组操作指引
      • 相关参考
        • 旧版源站组兼容相关问题
      • 获取 EdgeOne 回源节点 IP
  • 边缘缓存
    • 概述
    • EdgeOne 缓存规则介绍
      • EdgeOne 内容缓存规则
      • 缓存键(Cache Key)介绍
      • Vary 特性
    • 缓存配置
      • 自定义 Cache Key
      • 节点缓存 TTL
      • 状态码缓存 TTL
      • 浏览器缓存 TTL
      • 离线缓存
      • 缓存预刷新
    • 清除和预热缓存
      • 清除缓存
      • 预热缓存
    • 如何提高 EdgeOne 的缓存命中率
  • 规则引擎
    • 概述
    • 规则引擎支持的匹配类型与操作
    • 规则管理
    • 变量

概述

功能简介

规则引擎旨在通过丰富的规则语言,满足更加灵活、细粒度的业务需求。您可按需自定义匹配类型,并应用于对应的操作。相较于站点加速侧的配置,规则引擎的优先级更高,即在规则引擎创建的自定义策略将覆盖站点加速的配置。

适用场景

站点加速侧的站点级配置无法覆盖全部业务需求,不同子域名,路径或文件后缀等匹配条件下存在差异化配置。
当前业务除了需要缓存,HTTPS 等基础配置,还需要自定义 Cache Key, URL 重写和修改 HTTP 头部等其他加速功能。

关键术语

定义
说明
规则
包含特定类型的请求以及应用于它们的一系列操作。
条件表达式
定义识别请求的逻辑,支持以下类别:
IF注1
ELSE IF
ELSE
匹配条件
定义识别请求的标准,包括:
匹配类型
运算符
And/Or
逻辑与/逻辑或,可连接多个匹配条件。
操作
命中的请求执行的一系列功能配置。
说明:

注1:
IF 语句可以嵌套在一层 IF 语句下,即执行内嵌 IF 语句之前必须先满足最外层 IF 语句。

规则生效优先级

范围
说明
站点加速 vs 规则引擎
若站点加速与规则引擎配置了同一个操作,则规则引擎优先级更高,为最终生效的配置。
规则引擎的单条规则内
如果 IF 语句内存在嵌套的 IF 条件,执行内嵌 IF 语句必须先满足最外层 IF 条件。
如果存在多个同级的 IF 条件,按 IF 条件的相对顺序,从上至下执行,即如果同时匹配到多条规则,下方规则的操作将覆盖上方的规则。
如果同时存在 IF、Else IF、Else,则满足其中任意一个 IF、Else IF 条件时,执行对应操作后结束,不会再继续匹配当前 IF 条件下的其它规则,如果都不满足,则按照 Else 规则内操作执行。
规则引擎内的多条规则
按相对顺序,从上至下执行。
提示:确定规则放置位置时,可将具有通用性或粗粒度的规则放在上方位置作为默认配置,针对特定请求或细粒度的规则放在下方位置。
注意:
有两种场景的执行较为特殊:
无论 Token 鉴权 不管出现在哪个位置,它始终是最先执行的。例如,如果一个请求同时命中了两条规则,即使 Token 鉴权操作在下方的规则中,它也会最先执行,鉴权通过才继续执行剩下的内容。
对于包含跳转逻辑的操作,如访问 URL 重定向和强制 HTTPS,它们的执行方式为 Break。这意味着,如果同一个请求命中了跳转操作和其他操作,那么在执行跳转操作后,将不再继续执行下方其他操作。

规则生效优先级示例

示例一:IF 条件内嵌套 IF 匹配

当前用户的节点缓存 TTL 规则配置如下所示,存在多层嵌套 IF 条件。



则用户请求的 URL 缓存行为按照如下行为生效:



当请求 URL 为:https://test.example.com/example/1.jpg时,文件缓存10分钟。
当请求 URL 为:https://test.example.com/example/1.mp4 时,文件不缓存。
当请求 URL 为:https://test.exampel.com/vidoe/1.jpg 时,不会匹配到该规则。

示例二:IF 条件内包含多个同级 Else IF 匹配

当前用户的节点缓存 TTL 规则配置如下所示,存在多个同级 Else IF 条件。



则用户请求的 URL 缓存行为按照如下行为生效:



当请求 URL 为:https://test.example.com/image/1.jpg 时,文件缓存7天。
当请求 URL 为:https://test.example.com/index/1.jsp 时,文件不缓存。
当请求 URL 为:https://test.exampel.com/admin/1.php 时,不缓存。

示例三:多个同级 IF 条件匹配

当前用户的节点缓存 TTL 规则配置如下所示,存在多个同级 IF 条件,则连续的 IF 条件,下方条件的生效优先级顺序最高。



则用户请求的 URL 缓存行为按照如下行为生效:



当请求 URL 为:https://test.example.com/image/1.jpg 时,文件缓存7天。
当请求 URL 为:https://test.example.com/admin/1.php 时,文件不缓存。
当请求 URL 为:https://test.exampel.com/admin/1.jpg 时,文件不缓存。
当请求 URL 为:https://test.exampel.com/index/1.txt 时,文件遵循源站 Cache-Control 头部设置,不存在该头部时,遵循 EdgeOne 默认缓存策略。