配置文件参考

cheesewaf.yaml 主配置文件结构导航、顶层键解析、超时控制与热重载范围说明。

CheeseWAF 在首次启动时会在运行数据目录的 config/ 目录下自动生成 cheesewaf.yaml 主配置文件(默认 ./data/config/cheesewaf.yaml)。预设配置模板可参考源码库中的 configs/cheesewaf.yaml。

configs/cheesewaf.yaml 是源码模板,不是运行时状态文件。初始化、站点管理和控制台保存操作会写入运行时配置;源码构建时请先复制到 ./data/config/cheesewaf.yaml 或其他明确的数据目录,避免把数据库路径、证书、密钥和站点变更写回 Git 工作区中的模板。

顶层配置块索引

顶层配置键功能模块与定位详细参考章节
server基础网络监听、管理端口与网络层超时架构介绍 · TLS 与证书
tls数据平面 TLS/HTTPS 证书与 HSTS 配置TLS 与证书
setup初始化状态与运行时数据目录定义系统初始化 · 存储与调度
deployment / cluster部署形态(单机/集群)与高可用协同参数集群高可用
consoleWeb 控制台个性化与管理端登录安全Bot 与验证码 · 监控与日志
sites业务反向代理站点、域名与上游配置站点管理
protection全局安全基线(语义引擎、IP、Bot、限流等)安全防护策略
block_page阻断拦截页模板与自定义响应 HTML 清洗拦截响应页
storagetemporary SQLite 管理存储;预留但当前会拒绝的 production 配置;可选外部日志 Sink存储与调度
logging访问日志输出级别、格式与文件轮转监控与日志
aiALAP 大语言模型连接与异步研判参数ALAP 异步审查
updateOTA 预留配置;当前运行时尚未实现更新 Worker系统运维
scheduler自动化清理、配置快照与定时报表任务调度器;配置快照不是完整数据库导出存储与调度
edge边缘响应头注入、静态缓存与 Gzip/Brotli 压缩边缘特性
monitorPrometheus 指标导出、Remote Write 与告警通知器监控与日志
apisecAPI 资产发现、Schema 校验与 RBAC 权限矩阵API 接口安全
performanceGo 运行时垃圾回收(GC)自适应调优(memory_limit_ratio / min_gogc)架构介绍
time_syncNTP 时间同步服务器与时钟偏差共识算法配置监控与日志
captcha_assets验证码自定义背景图与点选图标静态资源目录Bot 与验证码
acmeACME 自动化证书签发与 DNS 认证提供商配置TLS 与证书
vulnerability漏洞预警情报源订阅配置系统运维

超时机制配置

  • 接入层超时:server.read_timeout、server.write_timeout 与 server.idle_timeout 控制客户端与 WAF 之间的 HTTP 连接生命周期。
  • 反向代理超时:sites[].waf.performance.proxy_timeout 控制 WAF 向后端上游源站发起请求与等待响应的最大超时时间。

防护模式与请求体限制

  • WAF 防护模式 (waf.mode):支持 block(阻断恶意请求)、monitor(仅记录告警不拦截)以及 off(完全关闭防护)。历史配置别名 log 会被系统自动识别并归一化为 monitor。
  • 请求体截断保护 (max_body_bytes):当入站请求体大小超出配置的 max_body_bytes 上限时,数据平面直接向客户端响应 HTTP 413 Request Entity Too Large,避免大请求体绕过或耗尽内存。

网关适配器认证与代理穿透

  • 专用适配器令牌 (CHEESEWAF_ADAPTER_TOKEN):使用外部网关适配器(CheeseWAF-Adapters)时,调用方必须通过独立的 X-CheeseWAF-Adapter-Token 请求头传递密钥;它不是 Bearer Token,严禁放入 Authorization 头部。
  • 可信代理网段 (trusted_cidrs):默认可信 CIDR 列表为空。若 CheeseWAF 部署在可信前置代理(如 CDN 或云负载均衡器)之后,需显式配置 sites[].waf.access_control.trusted_cidrs(例如 127.0.0.1/32 或 ::1/128),才能安全解析 X-Forwarded-For 中的真实客户端 IP。

动态热重载范围

  • 即时热生效:在 Web 控制台或通过 REST API 保存站点配置、自定义规则、IP 黑白名单、Bot 挑战策略及 ACL 规则时,系统会在内存中实时原子热重载,无需重启服务进程。
  • 需重启生效:修改 server.listen、server.admin_listen 等底层物理监听端口或网络驱动层参数后,须重启服务进程(通过 cheesewaf restart 或 systemd 服务管理器)。