Skip to content

访问控制与限速配置

概述

矩尺平台在四层(TCP/UDP)和七层(HTTP/HTTPS)均提供访问控制与流量限制能力,帮助您保护后端服务免受恶意流量、过度请求和资源滥用的影响。

配置方式:

  • 七层:先创建"HTTP 访问策略"(独立页签),再在"HTTP 策略"中通过「HTTP 访问控制策略」字段引用它
  • 四层:TCP/UDP 策略自带黑白名单和连接限制,无需单独创建访问策略

本文档以七层为主线(功能最全面),四层的差异在末尾补充。


七层 HTTP 访问策略

创建与引用流程

第一步:创建访问策略
  入口:【负载流量管理 → 策略配置 → 七层策略 → 访问策略】页签
  点击"新增",配置以下参数(见下方各节)

第二步:创建 HTTP 策略并引用
  入口:【负载流量管理 → 策略配置 → 七层策略 → HTTP策略】页签
  在「HTTP 访问控制策略」字段中选择第一步创建的访问策略
  → 这样 HTTP 策略就具备了访问控制能力

第三步:在分发规则中绑定 HTTP 策略
  虚拟服务 → 分发规则 → 七层HTTP策略 → 选择第二步创建的 HTTP 策略

访问策略配置


一、IP 黑白名单

在策略中绑定预先创建的 IP 集合,实现基于客户端 IP 的访问控制。

配置项作用
白名单 IP选择 IP 集合,仅允许集合内的 IP 访问。不在白名单中的请求将被拒绝
黑名单 IP选择 IP 集合,禁止集合内的 IP 访问。黑名单中的 IP 请求将被拒绝

白名单和黑名单可同时使用:先检查白名单(不在白名单中直接拒绝),再检查黑名单(在黑名单中则拒绝)。


二、身份认证

基本认证 Realm

开启后,客户端请求必须携带 Authorization: Basic <base64> 头部,用户名和密码由管理员预设。适用于简单的 API 认证或内部工具访问,不建议在生产环境对公网暴露。

配置项说明
基本认证 Realm认证域标识,浏览器弹窗中显示的提示文字
用户名/密码预设一组或多组凭据

用户鉴权服务器地址

开启后,每个请求到达时,负载均衡会先向指定的鉴权服务器发送子请求。如果鉴权服务器返回 2xx,放行;返回 401 或 403,则拒绝客户端请求。

工作流程:

客户端请求 → 矩尺 → (子请求) → 鉴权服务器
                     ← 2xx → 放行,正常转发到后端
                     ← 401/403 → 拒绝客户端请求

这种方式比 Basic 认证更灵活——鉴权逻辑由外部服务实现,支持 Token、OAuth 等复杂认证方式。


三、并发与频率限制(全局)

限制所有客户端合计的访问量,用于保护后端服务的总容量。

配置项含义
最大并发请求数同时处理的最大并发请求数。可勾选"不限制"
最大并发延迟请求数超出并发限制后允许排队等待的最大数量。可勾选"不限制"
每秒最大处理请求数每秒允许的最大请求数(QPS 上限)。可勾选"不限制"
每秒最大处理延迟请求数QPS 超出后允许的突发缓冲量。可勾选"不限制"
窗口时间内最大并发请求指定时间窗口内的最大并发数。可勾选"不限制"
窗口时间内最大并发延迟请求数窗口内超出并发限制后允许排队的数量。可勾选"不限制"
QPS 超限返回错误码当请求被 QPS 限制拒绝时返回的 HTTP 状态码,默认 503
并发数超限返回错误码当请求被并发限制拒绝时返回的 HTTP 状态码,默认 503

四、并发与频率限制(单客户端)

限制每个客户端 IP 独立的访问量,防止单个 IP 占用过多资源。

配置项含义
最大并发请求数单个 IP 同时处理的并发请求数上限。可勾选"不限制"
最大并发延迟请求数单 IP 超出并发限制后允许排队的数量。可勾选"不限制"
每秒最大处理请求数单个 IP 每秒允许的最大请求数。可勾选"不限制"
每秒最大处理延迟请求数单 IP QPS 超出后允许的突发缓冲量。可勾选"不限制"
窗口时间内最大并发请求单 IP 在时间窗口内的最大并发数。可勾选"不限制"
窗口时间内最大并发延迟请求数单 IP 窗口内超出并发限制后允许排队的数量。可勾选"不限制"

全局 + 单客户端,建议同时配置

  • 全局限制保护后端总容量(如全局 QPS 1000)
  • 单客户端限制防止单个 IP 独占资源(如单 IP QPS 50)

五、上传与响应速率控制

访问策略中还可限制单个请求的传输速度(非请求频率),适用于大文件上传/下载场景。

配置项含义适用场景
HTTP 上传速率最大值限制客户端上传文件的速度(字节/秒)大文件上传
HTTP 上传不限速阈值上传文件超过此大小(字节)后才开始限速小文件不受限速影响
HTTP 响应限速限制向客户端下发响应的速度(字节/秒)大文件下载
HTTP 响应不限速阈值响应超过此大小(字节)后才开始限速小响应不受限速影响

为什么需要这些参数?

如果直接将大文件全速下发,一个下载请求就可能占满带宽。限速参数让每个连接公平分享带宽。不限速阈值 的设计确保小文件(如 API 响应 JSON)不受影响,只有真正的"大文件"才触发限速。

举例:

# 大文件下载限速
HTTP 响应限速:2097152(2MB/s)
HTTP 响应不限速阈值:1048576(1MB)
→ 前 1MB 不限速,超过后以 2MB/s 发送

# 大文件上传限速
HTTP 上传速率最大值:2097152(2MB/s)
HTTP 上传不限速阈值:10485760(10MB)
→ 前 10MB 不限速,超过后以 2MB/s 接收

可信网关

可信网关是基于区块链技术构建的联盟链访问控制。请求需通过链上合约授权后才能访问。开启后,需配置相关合约参数。具体使用请咨询矩尺技术支持。


四层访问控制

TCP 策略

入口:【SLB 本地负载 → 策略配置 → 四层策略 → 虚拟服务TCP策略】。

TCP 策略自带 IP 黑白名单和连接限制,字段分为全局和单客户端两组。限流对象是连接数(TCP 有连接):

全局限制(所有客户端合计):

配置项含义
最大并发连接数同时处理的最大并发连接数。可勾选"不限制"
最大并发延迟连接数超出并发限制后允许排队的数量
每秒最大处理连接数每秒允许的最大新建连接数
每秒最大处理延迟连接数新建连接超出后的突发缓冲量
窗口时间内最大并发连接时间窗口内的最大并发数
窗口时间内最大并发延迟连接数窗口内超限后允许排队的数量

单客户端限制(每个 IP 独立): 同样六项配置,仅作用于单个客户端 IP。

此外 TCP 策略还支持 IP 黑白名单(绑定 IP 集合)和 SNAT 源地址转换

UDP 策略

入口:【SLB 本地负载 → 策略配置 → 四层策略 → 虚拟服务UDP策略】。

UDP 策略支持 IP 黑白名单和请求数限制。由于 UDP 无连接,限流对象是请求数(每个数据包计为一个请求)。


配置场景

场景一:大文件上传限速(★ NGINX 不具备的能力)

背景: 开源 NGINX 的 limit_rate 指令只能限制响应发送(下载)的速率,无法限制请求接收(上传)的速率。当用户通过 HTTP POST/PUT 上传大文件(如视频、安装包、日志文件)时,NGINX 会全速接收,可能导致:

  • 单个上传请求占满带宽,影响其他用户
  • 后端存储服务的写入压力瞬时飙升
  • 无法对不同大小的文件做差异化限速

矩尺的"HTTP 上传速率最大值"填补了这个空缺。

配置步骤:

  1. 创建访问策略:【七层策略 → 访问策略】→ 新增
  2. 配置上传限速:
    • HTTP 上传速率最大值:2097152(2MB/s)
    • HTTP 上传不限速阈值:10485760(前 10MB 不限速)
  3. 创建 HTTP 策略:【七层策略 → HTTP策略】→ 在「HTTP 访问控制策略」字段引用刚创建的访问策略
  4. 在虚拟服务的分发规则中,选择此 HTTP 策略

效果:

客户端 POST /api/upload(100MB 文件)

前 10MB:全速上传(不限速)
  ↓ 超过 10MB 后
剩余 90MB:以 2MB/s 的速度上传
  总耗时 ≈(10MB 瞬间)+(90MB ÷ 2MB/s)= 约 45 秒

对比:
  不限速:总耗时约 5 秒,但一个人占满带宽
  限速后:总耗时约 45 秒,带宽占用均匀,不影响其他用户

与 NGINX 的对比:

能力NGINX 开源版矩尺
限制下载速率limit_rateHTTP 响应限速
限制上传速率不支持HTTP 上传速率最大值
大文件/小文件差异化不支持HTTP 上传/响应不限速阈值

适用场景

  • 文件存储服务(用户上传视频、图片、文档)
  • 日志收集服务(多个客户端批量上传日志)
  • CI/CD 制品仓库(上传构建产物)
  • 任何需要保护后端不被单个大文件上传压垮的场景

场景二:保护后端 API 不被刷爆

配置步骤:

  1. 创建访问策略,配置:
    • 每秒最大处理请求数:1000(全局 QPS)
    • 每秒最大处理延迟请求数:200(全局突发缓冲)
    • QPS 超限返回错误码:429
    • 单客户端每秒最大处理请求数:50(单 IP QPS)
    • 单客户端每秒最大处理延迟请求数:10
  2. 按场景一步骤 3-4 完成引用和绑定

场景三:大文件下载限速

配置步骤:

  1. 创建访问策略,配置:
    • HTTP 响应限速:2097152(2MB/s)
    • HTTP 响应不限速阈值:1048576(1MB 以内不限速)
  2. 按场景一步骤 3-4 完成引用和绑定

场景四:内部管理后台 IP 白名单

配置步骤:

  1. 预先在 IP 集合管理 中创建"公司内网 IP 段"集合
  2. 创建访问策略,配置:
    • 白名单 IP:选择"公司内网 IP 段"集合
  3. 按场景一步骤 3-4 完成引用和绑定
  4. 在虚拟服务中创建高优先级分发规则:
    • 分发策略:URL 前缀 = /admin/
    • 处理方式:HTTP 代理 → admin-pool
    • 七层 HTTP 策略:选择关联了此访问策略的 HTTP 策略

七层访问策略和 HTTP 策略的详细配置参见 七层策略用户手册,四层参见 四层策略用户手册,IP 集合管理参见 IP 集合管理