Skip to content
本页内容由 AI 辅助生成与翻译,如有不当之处,欢迎协助改进。 在 GitHub 上编辑

配置参考

本页面文档化了 PRX-WAF TOML 配置文件中的每一个配置项。默认配置文件为 configs/default.toml

代理设置([proxy]

控制反向代理监听器的设置。

配置项类型默认值说明
listen_addrstring"0.0.0.0:80"HTTP 监听地址
listen_addr_tlsstring"0.0.0.0:443"HTTPS 监听地址
worker_threadsinteger | nullnull(CPU 核数)代理工作线程数。为 null 时使用逻辑 CPU 核数。

API 设置([api]

管理 API 和管理界面的设置。

配置项类型默认值说明
listen_addrstring"127.0.0.1:9527"管理 API + 界面监听地址。生产环境绑定到 127.0.0.1 以限制访问。

存储设置([storage]

PostgreSQL 数据库连接。

配置项类型默认值说明
database_urlstring"postgresql://prx_waf:[email protected]:5432/prx_waf"PostgreSQL 连接 URL
max_connectionsinteger20连接池中的最大数据库连接数

缓存设置([cache]

使用 moka LRU 内存缓存的响应缓存配置。

配置项类型默认值说明
enabledbooleantrue启用响应缓存
max_size_mbinteger256最大缓存大小(MB)
default_ttl_secsinteger60缓存响应的默认 TTL(秒)
max_ttl_secsinteger3600最大 TTL 上限(秒)。无论上游头如何,响应不会被缓存超过此时间。

HTTP/3 设置([http3]

通过 Quinn 库的 HTTP/3 QUIC 支持。

配置项类型默认值说明
enabledbooleanfalse启用 HTTP/3 支持
listen_addrstring"0.0.0.0:443"QUIC 监听地址(UDP)
cert_pemstring--TLS 证书路径(PEM 格式)
key_pemstring--TLS 私钥路径(PEM 格式)

WARNING

HTTP/3 需要有效的 TLS 证书。enabled = true 时必须设置 cert_pemkey_pem

安全设置([security]

管理 API 和代理安全配置。

配置项类型默认值说明
admin_ip_allowliststring[][]允许访问管理 API 的 IP/CIDR 列表。空表示允许所有。
max_request_body_bytesinteger10485760(10 MB)最大请求体大小(字节)。超出限制的请求以 413 拒绝。
api_rate_limit_rpsinteger0管理 API 的每 IP 限速(请求/秒)。0 表示禁用。
cors_originsstring[][]管理 API 的 CORS 允许来源。空表示允许所有来源。

规则设置([rules]

规则引擎配置。

配置项类型默认值说明
dirstring"rules/"规则文件所在目录
hot_reloadbooleantrue启用文件系统监控以自动重载规则
reload_debounce_msinteger500文件变更事件的防抖窗口(毫秒)
enable_builtin_owaspbooleantrue启用内置 OWASP CRS 规则
enable_builtin_botbooleantrue启用内置 Bot 检测规则
enable_builtin_scannerbooleantrue启用内置扫描器检测规则

规则源([[rules.sources]]

配置多个规则源(本地目录或远程 URL):

配置项类型必填说明
namestring源名称(如 "custom""owasp-crs"
pathstring本地目录路径
urlstring远程规则获取 URL
formatstring规则格式:"yaml""json""modsec"
update_intervalinteger自动更新间隔(秒,仅远程源)
toml
[[rules.sources]]
name   = "custom"
path   = "rules/custom/"
format = "yaml"

[[rules.sources]]
name            = "owasp-crs"
url             = "https://example.com/rules/owasp.yaml"
format          = "yaml"
update_interval = 86400

CrowdSec 设置([crowdsec]

CrowdSec 威胁情报集成。

配置项类型默认值说明
enabledbooleanfalse启用 CrowdSec 集成
modestring"bouncer"集成模式:"bouncer""appsec""both"
lapi_urlstring"http://127.0.0.1:8080"CrowdSec LAPI URL
api_keystring""Bouncer API 密钥
update_frequency_secsinteger10决策缓存刷新间隔(秒)
fallback_actionstring"allow"LAPI 不可达时的动作:"allow""block""log"

主机配置([[hosts]]

静态主机条目(也可通过管理界面/API 管理):

配置项类型必填说明
hoststring要匹配的域名
portinteger监听端口(通常 80 或 443)
remote_hoststring上游后端 IP 或主机名
remote_portinteger上游后端端口
sslboolean到上游使用 HTTPS(默认:false)
guard_statusboolean启用 WAF 防护(默认:true)

集群设置([cluster]

多节点集群配置。详见集群模式

配置项类型默认值说明
enabledbooleanfalse启用集群模式
node_idstring""(自动)唯一节点标识。空时自动生成。
rolestring"auto"节点角色:"auto""main""worker"
listen_addrstring"0.0.0.0:16851"节点间通信的 QUIC 监听地址
seedsstring[][]加入集群的种子节点地址

集群加密([cluster.crypto]

配置项类型默认值说明
ca_certstring--CA 证书路径(PEM)
ca_keystring--CA 私钥路径(仅主节点)
node_certstring--节点证书路径(PEM)
node_keystring--节点私钥路径(PEM)
auto_generatebooleantrue首次启动时自动生成证书
ca_validity_daysinteger3650CA 证书有效期(天)
node_validity_daysinteger365节点证书有效期(天)
renewal_before_daysinteger7到期前多少天自动续签

集群同步([cluster.sync]

配置项类型默认值说明
rules_interval_secsinteger10规则版本检查间隔
config_interval_secsinteger30配置同步间隔
events_batch_sizeinteger100达到此数量时刷新事件批次
events_flush_interval_secsinteger5即使批次未满也刷新事件
stats_interval_secsinteger10统计数据上报间隔
events_queue_sizeinteger10000事件队列大小(满时丢弃最旧的)

集群选举([cluster.election]

配置项类型默认值说明
timeout_min_msinteger150最小选举超时(毫秒)
timeout_max_msinteger300最大选举超时(毫秒)
heartbeat_interval_msinteger50主节点到工作节点心跳间隔(毫秒)
phi_suspectfloat8.0Phi 累积疑似阈值
phi_deadfloat12.0Phi 累积死亡阈值

集群健康([cluster.health]

配置项类型默认值说明
check_interval_secsinteger5健康检查频率
max_missed_heartbeatsinteger3N 次未响应后标记为不健康

完整默认配置

参考仓库中的 default.toml 文件。

下一步

Released under the Apache-2.0 License.