跳转到内容

配置项

本文档汇总 OpenFlare 1.0.0 当前支持的 Server 与 Agent 配置项,只保留仍然有效的启动、部署与运行参数。

配置来源

Server 支持三类配置来源:

  1. 命令行参数。
  2. 环境变量。
  3. 数据库 Option 表中的运行时配置。

Agent 支持:

  1. -config 命令行参数。
  2. agent.json 配置文件。
  3. 少量日志相关环境变量。

Server 命令行参数

bash
cd openflare_server
go run . --port 3000 --log-dir ./logs
参数作用默认值
--port指定 Server 监听端口3000
--log-dir指定日志目录
--version输出当前版本后退出false
--help输出帮助信息后退出false

Server 环境变量

环境变量作用默认值
PORTServer 监听端口3000
GIN_MODEGin 运行模式debug 时按 release
LOG_LEVEL日志等级info
SESSION_SECRETSession 签名密钥启动时随机生成
SQLITE_PATHSQLite 数据库文件路径openflare.db
DSNPostgreSQL DSN,设置后优先于 SQLite
SQL_DSN兼容旧命名的 PostgreSQL DSN,优先级低于 DSN
REDIS_CONN_STRINGRedis 连接串
UPLOAD_PATH上传目录upload
AGENT_TOKEN兼容旧部署的全局 Agent Token

说明:

  • DSNSQL_DSN 同时存在时优先使用 DSN
  • DSNSQL_DSNSQLITE_PATH 同时存在时优先使用 PostgreSQL。
  • 当目标 PostgreSQL 数据库为空且本地 SQLITE_PATH 文件存在时,Server 启动阶段会自动迁移 SQLite 数据,并在日志中输出按表迁移进度。
  • SESSION_SECRET 生产环境必须显式配置。
  • REDIS_CONN_STRING 未配置时,相关能力回退为进程内实现。

运行时 Option

以下配置由管理端设置页维护,可热更新:

配置项作用默认值
AgentHeartbeatIntervalAgent 心跳间隔(毫秒)10000
NodeOfflineThreshold节点离线阈值(毫秒)120000
AgentUpdateRepoAgent 自更新仓库Rain-kl/OpenFlare
GeoIPProvider节点/IP 归属解析方式ipinfo
RegisterEnabled是否允许新用户注册false
PasswordRegisterEnabled是否允许通过密码方式注册true
DatabaseAutoCleanupEnabled是否启用每日自动清理观测数据false
DatabaseAutoCleanupRetentionDays自动清理保留天数,至少 1 天30
GlobalApiRateLimitNum / GlobalApiRateLimitDuration全局 API 限流次数 / 时间窗口300 / 180
GlobalWebRateLimitNum / GlobalWebRateLimitDuration全局 Web 限流次数 / 时间窗口300 / 180
UploadRateLimitNum / UploadRateLimitDuration上传接口限流次数 / 时间窗口50 / 60
DownloadRateLimitNum / DownloadRateLimitDuration下载接口限流次数 / 时间窗口50 / 60
CriticalRateLimitNum / CriticalRateLimitDuration敏感接口限流次数 / 时间窗口100 / 1200

说明:

  • DatabaseAutoCleanupEnabled 开启后,Server 会在每天凌晨 3 点自动清理 node_access_logsnode_metric_snapshotsnode_request_reports 三类观测数据。
  • DatabaseAutoCleanupRetentionDays 为统一保留天数,必须大于等于 1。
  • 管理端支持手动清理时留空保留天数,以直接删除对应数据集的全部历史记录。

OpenResty 参数

OpenResty 性能参数与缓存参数继续统一保存在 Option 表。当前常用项包括:

  • OpenRestyWorkerProcesses
  • OpenRestyWorkerConnections
  • OpenRestyWorkerRlimitNofile
  • OpenRestyKeepaliveTimeout
  • OpenRestyProxyConnectTimeout
  • OpenRestyProxySendTimeout
  • OpenRestyProxyReadTimeout
  • OpenRestyProxyBufferingEnabled
  • OpenRestyGzipEnabled
  • OpenRestyCacheEnabled
  • OpenRestyCachePath
  • OpenRestyCacheMaxSize

这类参数必须以结构化方式校验、保存并参与版本渲染。

约束:

  • 管理端不再暴露 resolver 配置。
  • 规则上游统一渲染为 named upstream 并启用 keepalive。
  • 单上游如带 base path 或 query,会在 proxy_pass 中补回原始 URI。
  • 多上游仍要求每个上游都为纯 scheme://host[:port],且同一规则内协议一致。
  • OpenRestyCacheEnabled 用于启用缓存基础设施与全局默认参数;实际是否缓存、按 URL / 后缀 / 路径等命中策略由各条 proxy_routes 单独决定。
  • 默认缓存 Key 为 $scheme$host$request_uri
  • 默认 keepalive_timeout20 秒,默认 proxy_connect_timeout3 秒。
  • 默认事件模型为 epoll,并默认开启 multi_accept
  • HTTPS 监听默认使用独立 http2 on; 指令,避免新版 Nginx/OpenResty 对 listen ... http2 的弃用告警。

前端构建环境变量

环境变量作用默认值
NEXT_PUBLIC_API_BASE_URL前端请求 API 的基础路径/api
NEXT_PUBLIC_APP_VERSION前端展示版本号dev
NEXT_DEV_BACKEND_URL本地开发服务器代理的后端地址http://127.0.0.1:3000

Agent 环境变量

环境变量作用默认值
LOG_LEVELAgent 日志等级info

Agent 命令行参数

参数作用默认值
-config指定 Agent 配置文件路径./agent.json

Agent 配置字段

字段作用是否必填默认值/行为
server_url控制面地址
agent_token节点专属认证 Tokendiscovery_token 二选一
discovery_token首次自动注册使用的全局 Tokenagent_token 二选一
node_name节点名称自动使用主机名
node_ip节点 IP自动探测,优先选择公网 IPv4;仅无公网地址时退回可用内网地址
openresty_path本机 OpenResty 路径空,未设置时走 Docker 模式
openresty_container_nameDocker 模式下的容器名openflare-openresty
openresty_docker_imageDocker 模式下的镜像openresty/openresty:alpine
openresty_observability_port本地观测端口18081
docker_binaryDocker 可执行文件名或路径docker
data_dirAgent 数据目录配置文件所在目录下的 data
main_config_pathOpenResty 主配置写入路径本机模式建议显式配置
route_config_path路由配置写入路径data_dir/etc/nginx/conf.d/openflare_routes.conf
cert_dir本机证书写入目录data_dir/etc/nginx/certs
openresty_cert_dirOpenResty 读取证书目录随运行模式变化
lua_dir本机 Lua 脚本写入目录data_dir/etc/nginx/lua
openresty_lua_dirOpenResty 读取 Lua 目录随运行模式变化
observability_buffer_path观测补报缓冲文件路径data_dir/var/lib/openflare/observability-buffer.json
observability_replay_minutes自动补传最近观测窗口分钟数15
state_pathAgent 本地状态文件路径data_dir/var/lib/openflare/agent-state.json
heartbeat_interval心跳间隔10000 毫秒
request_timeoutHTTP 请求超时10000 毫秒

说明:

  • agent_tokendiscovery_token 不能同时为空。
  • heartbeat_intervalrequest_timeout 支持毫秒整数或 Go duration 字符串。
  • 未配置 openresty_path 时默认使用 Docker OpenResty 模式。
  • Agent 自动探测到私网 node_ip 时,Server 会在注册/心跳阶段优先保留 Agent 直连来源的公网地址,避免 NAT/多网卡场景误登记内网网卡地址。

维护要求

以下内容变化时,必须同步更新本文档:

  • Server 命令行参数。
  • Server 环境变量。
  • Agent 命令行参数。
  • Agent 配置字段。
  • 任一配置项的默认值、用途或示例。

基于 Apache License 2.0 发布