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

#默认策略
| 字段 / 控件 | 默认 / 示例 | 说明 |
|---|---|---|
enabled | false | 总开关。 |
requests / window_seconds | 100 / 60 | 每窗口每 key 最大请求数与窗口长度,超限返回 429。 |
global_qps | 0(不限) | 全站总量上限,兜底挡「每 IP 都不超但聚合打崩整站」。 |
count_only | false | 灰度:true = 只计数不拦截(先观察会拦多少,复核无误再切 false)。 |
exempt.ip_whitelist | true | 访问控制白名单内的 IP 豁免限流。 |
#接口级规则
按最具体匹配生效,每条独立配额。核心字段:
| 字段 / 控件 | 默认 / 示例 | 说明 |
|---|---|---|
host / match / methods | — | host 可选(省略 = 所有站点);match 为路径,kind 可选 prefix/exact/glob/regex;methods 限定方法。 |
key | ip | 限流维度:ip | token | ip+path。 |
per_route_qps | 0(不限) | 该接口全站聚合上限,挡分布式低速 CC。 |
on_exceed | reject | 超限动作:reject(429)| challenge(转人机验证)| queue(转等候室)。 |
tier | normal | core | 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 变成更友好的人机验证或排队,减少对真人的误伤。