CC 与限流

CC 与限流

默认全站限流 + 接口级精细限速:按 IP/Token/路径定窗计数,打崩一个接口不影响整站。

「CC 与限流」用分层定窗计数抵御高频访问与暴力破解。默认策略按客户端 IP 全站限流;接口级规则则按 host + path + method 命中最具体的一条独立限流——打崩一个接口不影响整站,这是墨守区别于「全站一刀切限流」的关键。

CC 与限流:默认策略 + 接口级规则
CC 与限流:默认策略 + 接口级规则

#默认策略

字段 / 控件默认 / 示例说明
enabledfalse总开关。
requests / window_seconds100 / 60每窗口每 key 最大请求数与窗口长度,超限返回 429。
global_qps0(不限)全站总量上限,兜底挡「每 IP 都不超但聚合打崩整站」。
count_onlyfalse灰度:true = 只计数不拦截(先观察会拦多少,复核无误再切 false)。
exempt.ip_whitelisttrue访问控制白名单内的 IP 豁免限流。

#接口级规则

按最具体匹配生效,每条独立配额。核心字段:

字段 / 控件默认 / 示例说明
host / match / methodshost 可选(省略 = 所有站点);match 为路径,kind 可选 prefix/exact/glob/regex;methods 限定方法。
keyip限流维度:ip | token | ip+path
per_route_qps0(不限)该接口全站聚合上限,挡分布式低速 CC。
on_exceedreject超限动作:reject(429)| challenge(转人机验证)| queue(转等候室)。
tiernormalcore | normal。过载时优先保 core。
示例:给登录接口单独限速并转人机验证
rules:
  - host: "api.example.com"
    match: "/api/login"
    methods: ["POST"]
    requests: 10
    window_seconds: 60
    key: "ip"
    on_exceed: "challenge"
    tier: "core"
on_exceed 设成 challenge 或 queue,能把「超限」从粗暴的 429 变成更友好的人机验证或排队,减少对真人的误伤。