Skip to content

Server 配置

官方脚本安装的 nodeget-server 的配置路径位于 /etc/nodeget-server.conf

toml
# WebSocket 监听地址,同时也会监听 Http 服务
ws_listener = "0.0.0.0:2211"

# JSON-RPC 最大连接数,默认 100
jsonrpc_max_connections = 100

# JSON-RPC 最大请求体大小,单位字节,默认 10485760(10MB)
# max_request_body_size = 10485760

# JSON-RPC 最大响应体大小,单位字节,默认 10485760(10MB)
# max_response_body_size = 10485760

# 是否启用 Unix Socket(仅非 Windows 平台)
# 启用后会额外监听 unix_socket_path 对应的 Axum 主路由
enable_unix_socket = false

# Unix Socket 路径(仅非 Windows 平台)
# 若 enable_unix_socket = true 且不配置该项,则默认 /var/lib/nodeget.sock
unix_socket_path = "/var/lib/nodeget.sock"

# Server 的 Uuid,建议设置为 auto_gen 以自动生成,根据系统环境自动生成,可保证数据不冲突(概率极小)
# 如果不是 auto_gen,请自行确保 Uuid 唯一,否则可能导致数据混乱或 UB
server_uuid = "auto_gen"

# 日志配置(可选,整个 [logging] 段不填则使用默认值)
[logging]

# 控制台日志过滤器,语法同 RUST_LOG 环境变量,默认 "info"
# 支持按模块指定级别,例如: "info,kv=debug,monitoring=trace,db=warn"
# 可用的 target:
#   server, rpc, db, kv, monitoring, task, token,
#   js_worker, js_result, crontab, crontab_result,
#   js_runtime, terminal
# 其中 "db" 是虚拟 target,会自动展开为 sea_orm / sea_orm_migration / sqlx
# 如果设置了 RUST_LOG 环境变量,它会覆盖此项
log_filter = "info"

# JSON 格式日志输出文件路径(可选,不设置则不输出 JSON 日志)
# 适用于日志采集(如 ELK、Loki 等)
json_log_file = "/var/log/nodeget/server.json"

# JSON 日志过滤器,语法同 RUST_LOG(可选,默认与 log_filter 相同)
# 可独立控制写入文件的日志级别,例如文件记录更详细的日志
# 注意:如果未设置且设置了 RUST_LOG 环境变量,则 RUST_LOG 的值也会作为此项的默认值
json_log_filter = "debug,kv=trace,db=info"

# 内存日志缓冲区容量(条数),默认 500,设为 0 表示禁用内存日志
# 通过 nodeget-server_log RPC 方法可查询缓冲区内容(需要 SuperToken)
memory_log_capacity = 500

# 内存日志过滤器,语法同 RUST_LOG(可选,默认与 log_filter 相同)
# 注意:如果未设置且设置了 RUST_LOG 环境变量,则 RUST_LOG 的值也会作为此项的默认值
memory_log_filter = "info"

# 注意:流式日志订阅(nodeget-server_stream_log)的过滤器不在此处配置,
# 而是由客户端在订阅时通过 log_filter 参数指定,详见 API 文档

# 监控数据缓冲写入配置(可选,整个 [monitoring_buffer] 段不填则使用默认值)
# 启用后,Agent 上报的监控数据会先缓存在内存中,按间隔批量写入数据库,减少 DB 压力
[monitoring_buffer]

# 刷新间隔,单位毫秒,默认 500
flush_interval_ms = 500

# 单次最大批量大小,默认 1000
max_batch_size = 1000

# 数据库配置
[database]

# 数据库地址
# 目前支持 sqlite / pgsql
# 优先使用 pgsql
# sqlite 示例: sqlite://nodeget.db?mode=rwc
# pgsql 示例: postgres://user:pass@host:5432/nodeget
database_url = "postgres://user:pass@host:5432/nodeget"

# 连接超时,单位毫秒,默认 3000
connect_timeout_ms = 3000

# 获取连接超时,单位毫秒,默认 3000
acquire_timeout_ms = 3000

# 空闲超时,单位毫秒,默认 3000
idle_timeout_ms = 3000

# 最大生命周期,单位毫秒,默认 30000
max_lifetime_ms = 30000

# 最大连接数,默认 10
# 若是大型服务器,请务必调大该项,否则将严重影响性能
# 若是小型服务器,保持默认即可,过大该数值可能导致内存占用激增
max_connections = 10

Unix Socket 说明

  • 仅在非 Windows 平台生效。
  • enable_unix_socket = true 时,Server 会在保留原 ws_listener 的同时,额外监听 unix_socket_path
  • unix_socket_path 未配置时默认 /var/lib/nodeget.sock
  • Unix Socket 与 TCP 共享同一套 Axum 主路由(包括 JSON-RPC HTTP 路由与 /worker-route/*)。
  • 启动时会尝试移除已有同名 socket 文件;服务重载/退出时会清理 socket 文件。

示例(通过 Unix Socket 调用 JSON-RPC):

bash
curl --unix-socket /var/lib/nodeget.sock \
  -H "content-type: application/json" \
  -X POST http://localhost/ \
  -d '{"jsonrpc":"2.0","method":"nodeget-server_hello","params":[],"id":1}'

若希望仅使用 Unix Socket,可将 ws_listener 绑定到本地回环地址并配合防火墙策略限制外部访问。