• 首页
首页
高防CDN静态与动态加速,边缘清洗与调度高防IP转发四层转发,业务 IP 高防接入SDK游戏盾客户端集成,游戏业务专属防护高防服务器独享资源,稳定抗 D 与高可用了解更多
游戏解决方案低延迟与防护一体化金融解决方案合规与流量清洗直播解决方案推拉流与边缘加速区块链解决方案Web3 基础设施防护查看方案
技术文档API 与接入指南帮助中心常见问题与帮助文档博客资讯产品动态与最佳实践全球测速多节点网络性能测试标签云按主题聚合全站内容进入文档
关于我们使命与愿景加入我们招聘与内推合作伙伴渠道与生态联系我们咨询与售后联系我们

文档目录

  • 技术文档
  • 最佳实践
文档/缓存配置/缓存策略

缓存策略

速盾网络 团队
技术文档

标签

  • 缓存

本页内容

暂无目录

分享文章

𝕏fin

企业级CDN与加速解决方案,AI智能监测优化,实时全方位DDoS/CC防护。全球数万家企业信赖,提供快速、安全、可靠的内容分发与抗DDOS攻击服务。

产品

  • 高防CDN
  • 高防IP转发
  • SDK游戏盾
  • 高防服务器

解决方案

  • 游戏解决方案
  • 金融解决方案
  • 直播解决方案
  • 区块链解决方案

资源

  • 技术文档
  • 帮助中心
  • 博客资讯
  • 全球测速

公司

  • 关于我们
  • 加入我们
  • 合作伙伴
  • 联系我们

© 2026 Sudun. 保留所有权利。

缓存策略定义了可在整个域名范围内应用的高级缓存方案。策略将多个缓存设置组合成可复用的配置,便于统一管理缓存行为。

理解缓存策略

缓存策略是一种命名配置,用于指定:

  • 缓存哪些内容
  • 缓存多长时间
  • 如何处理缓存键
  • 压缩与优化设置
code
缓存策略 "静态资源"
├── TTL:30天
├── 浏览器TTL:1天
├── 缓存键:URL + Accept-Encoding
├── 压缩:Brotli、Gzip
└── 提供陈旧内容:启用

默认策略

Sudun 为常见用例提供预配置策略:

标准策略

适用于典型网站的均衡缓存方案:

设置项取值
边缘TTL遵循源站头部
浏览器TTL遵循源站头部
缓存键URL + 查询字符串
压缩自动
提供陈旧内容仅出错时

激进策略

适用于静态内容的最大化缓存方案:

设置项取值
边缘TTL30天
浏览器TTL7天
缓存键仅URL
压缩始终启用
提供陈旧内容始终启用

动态策略

适用于动态内容的最小化缓存方案:

设置项取值
边缘TTL无
浏览器TTL无
缓存键不适用
压缩实时压缩
提供陈旧内容从不

创建自定义策略

仪表板设置

  1. 进入 域名 → 选择您的域名
  2. 导航至 缓存 → 策略
  3. 点击 创建策略
  4. 配置策略设置
  5. 点击 保存

策略配置

json
{
  "name": "我的静态策略",
  "description": "静态资源策略",
  "settings": {
    "cache": {
      "edge_ttl": 2592000,
      "browser_ttl": 86400,
      "respect_origin": false
    },
    "cache_key": {
      "include_query_string": false,
      "include_headers": ["Accept-Encoding"]
    },
    "optimization": {
      "compression": "auto",
      "minify": false
    },
    "stale": {
      "serve_while_revalidate": true,
      "serve_on_error": true,
      "max_stale_age": 86400
    }
  }
}

策略设置

TTL设置

控制缓存时长:

设置项说明取值范围
edge_ttl边缘节点缓存时间0 - 31536000(1年)
browser_ttl浏览器缓存时间0 - 31536000
respect_origin遵循源站头部true/false
min_ttl最短缓存时间0 - 86400
max_ttl最长缓存时间0 - 31536000

TTL优先级规则:

code
若 respect_origin = true:
  TTL = 源站Cache-Control值(在min/max范围内)

若 respect_origin = false:
  TTL = edge_ttl设置值

缓存键设置

定义缓存内容的唯一性标识:

json
{
  "cache_key": {
    "include_query_string": true,
    "query_string_whitelist": ["page", "sort"],
    "query_string_blacklist": ["utm_*", "fbclid"],
    "include_headers": ["Accept-Encoding", "Accept-Language"],
    "include_cookies": [],
    "include_device_type": false,
    "include_geo": false
  }
}

缓存键选项:

选项效果
include_query_string按查询参数区分缓存
query_string_whitelist仅这些参数影响缓存
query_string_blacklist忽略这些参数
include_headers按请求头部区分缓存
include_cookies按Cookie区分缓存
include_device_type区分移动端/桌面端缓存
include_geo按国家区分缓存

压缩设置

配置内容压缩:

json
{
  "compression": {
    "mode": "auto",
    "algorithms": ["br", "gzip", "deflate"],
    "min_size": 1024,
    "types": ["text/*", "application/json", "application/javascript"]
  }
}

压缩模式:

模式行为
auto根据内容类型和大小自动压缩
always始终压缩符合条件的内容
never禁用压缩
origin仅使用源站压缩

陈旧内容设置

配置陈旧内容行为:

json
{
  "stale": {
    "serve_while_revalidate": true,
    "serve_on_error": true,
    "max_stale_age": 86400,
    "error_codes": [500, 502, 503, 504]
  }
}

应用策略

应用到路径

为特定路径分配策略:

json
{
  "policy_assignments": [
    {
      "policy": "aggressive-static",
      "match": {
        "path": "/static/*"
      }
    },
    {
      "policy": "dynamic",
      "match": {
        "path": "/api/*"
      }
    }
  ]
}

应用到文件类型

按文件扩展名分配策略:

json
{
  "policy": "aggressive-static",
  "match": {
    "file_extensions": ["css", "js", "jpg", "png", "woff2"]
  }
}

应用到内容类型

按响应内容类型分配策略:

json
{
  "policy": "standard",
  "match": {
    "content_type": ["text/html", "application/xhtml+xml"]
  }
}

策略继承

策略可以从其他策略继承:

json
{
  "name": "my-images-policy",
  "inherits": "aggressive-static",
  "overrides": {
    "cache": {
      "browser_ttl": 604800
    },
    "optimization": {
      "image_optimization": true
    }
  }
}

继承链:

code
基础策略:aggressive-static
└── my-images-policy(继承并覆盖 browser_ttl)
    └── my-hero-images(继承并覆盖图像质量)

策略版本控制

版本控制

跟踪策略随时间的变化:

json
{
  "name": "static-assets",
  "version": 3,
  "created_at": "2024-01-01T00:00:00Z",
  "updated_at": "2024-01-15T10:30:00Z",
  "changelog": [
    {
      "version": 3,
      "date": "2024-01-15",
      "changes": "将浏览器 TTL 增加到 7 天"
    },
    {
      "version": 2,
      "date": "2024-01-10",
      "changes": "添加了 Brotli 压缩"
    }
  ]
}

回滚

恢复到之前的策略版本:

  1. 转到 策略 → 选择策略
  2. 点击 版本历史
  3. 选择要恢复的版本
  4. 点击 回滚

策略测试

预览模式

在部署前测试策略更改:

json
{
  "preview": true,
  "test_urls": [
    "https://example.com/test-page",
    "https://example.com/static/test.css"
  ]
}

A/B 测试

测试策略效果:

json
{
  "ab_test": {
    "enabled": true,
    "variants": [
      {
        "name": "control",
        "policy": "current-policy",
        "weight": 50
      },
      {
        "name": "experiment",
        "policy": "new-policy",
        "weight": 50
      }
    ],
    "metrics": ["cache_hit_ratio", "origin_requests", "ttfb"]
  }
}

常见策略模式

电商产品页面

json
{
  "name": "product-pages",
  "settings": {
    "cache": {
      "edge_ttl": 3600,
      "browser_ttl": 300
    },
    "cache_key": {
      "include_query_string": true,
      "query_string_whitelist": ["variant", "color", "size"]
    },
    "stale": {
      "serve_while_revalidate": true,
      "max_stale_age": 3600
    }
  }
}

新闻/博客文章

json
{
  "name": "blog-content",
  "settings": {
    "cache": {
      "edge_ttl": 600,
      "browser_ttl": 60
    },
    "stale": {
      "serve_while_revalidate": true,
      "serve_on_error": true
    }
  }
}

API 响应

json
{
  "name": "api-cacheable",
  "settings": {
    "cache": {
      "edge_ttl": 60,
      "browser_ttl": 0,
      "respect_origin": true
    },
    "cache_key": {
      "include_query_string": true,
      "include_headers": ["Authorization"]
    }
  }
}

版本化资源

json
{
  "name": "immutable-assets",
  "settings": {
    "cache": {
      "edge_ttl": 31536000,
      "browser_ttl": 31536000,
      "immutable": true
    },
    "cache_key": {
      "include_query_string": false
    }
  }
}

策略分析

查看策略性能指标:

指标说明
缓存命中率从缓存提供服务的请求百分比
源站卸载率源站请求减少百分比
节省带宽从缓存提供的数据量
平均TTL内容在缓存中的平均停留时间

仪表板指标

  1. 前往 分析 → 缓存性能
  2. 按策略名称筛选
  3. 查看随时间变化的指标

故障排除

策略未生效

  1. 检查策略分配规则
  2. 验证路径/扩展名匹配
  3. 检查策略优先级顺序
  4. 查看源站响应头

意外缓存行为

  1. 检查源站响应头是否覆盖策略
  2. 验证缓存键配置
  3. 使用curl测试查看响应头
  4. 检查是否存在冲突规则

缓存命中率低

  1. 检查缓存键设置(是否过于具体?)
  2. 检查TTL值(是否过短?)
  3. 分析查询字符串变化
  4. 考虑设备/地域分流影响

API参考

创建策略

bash
curl -X POST https://api.Sudun.com/v1/domains/example.com/policies \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "my-policy",
    "settings": {
      "cache": {"edge_ttl": 86400},
      "compression": {"mode": "auto"}
    }
  }'

更新策略

bash
curl -X PUT https://api.Sudun.com/v1/domains/example.com/policies/my-policy \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "settings": {
      "cache": {"edge_ttl": 172800}
    }
  }'

列出策略

bash
curl -X GET https://api.Sudun.com/v1/domains/example.com/policies \
  -H "Authorization: Bearer YOUR_API_KEY"

需要缓存策略帮助?请联系 support@Sudun.com