API7 网关控制面配置参考
API7 网关控制面是存储配置并协调数据面(DP)节点的中央 管理组件。控制面由两个服务组成,每个服务使用独立的配置文件:
- 控制台:提供 Web UI 和 Admin API,通过
dashboard_conf/conf.yaml配置。 - DP Manager:负责与 DP 节点同步配置和交换遥测数据,通过
dp_manager_conf/conf.yaml配置。
部署时,这两个文件会分别挂载到对应的容器(或 Pod)中。本页介绍配置文件中的常用字段,不涵盖完整的配置结构。有关完整的部署说明,请参见使用 Docker Compose 部署或在 Kubernetes 上部署。
控制台配置(dashboard_conf/conf.yaml)
控制台可通过任何已启用的监听器提供 Web UI 和 Admin API。在生产环境中,请使用 TLS 监听器;除非有明确需求,否则应禁用明文 HTTP 监听器。典型配置如下:
dashboard_conf/conf.yaml
server:
listen:
disable: true # 在生产环境中禁用明文 HTTP 监听器。
host: "0.0.0.0"
port: 7080
tls:
disable: false
host: "0.0.0.0"
port: 7443 # Admin API 和 HTTPS UI 监听器。
key_file: "" # TLS 私钥路径。留空则使用内置自签名证书。
cert_file: "" # TLS 证书路径。
status:
disable: false
host: "127.0.0.1"
port: 7081 # 健康检查和就绪探针。
log:
level: warn # 可 选值:debug、info、warn、error。
output: stderr # stderr、stdout 或绝对文件路径。
database:
dsn: "postgres://api7ee:changeme@192.168.31.10:5432/api7ee"
session_options_config:
same_site: "lax" # SameSite Cookie 模式:lax、strict 或 none。
secure: false # 仅通过 HTTPS 提供 UI 时设置为 true。
max_age: 86400 # 会话生命周期,单位为秒。
prometheus:
addr: "http://192.168.31.11:9090"
whitelist:
- "/api/v1/query_range"
- "/api/v1/query"
- "/api/v1/format_query"
- "/api/v1/series"
- "/api/v1/labels"
- "/api/v1/labels/.*/values"
# basic_auth:
# username: ""
# password: ""
# tls:
# server_name: ""
# insecure_skip_verify: false
# enable_client_cert: false
# key_file: ""
# cert_file: ""
# ca_file: ""
consumer_proxy:
enable: false
cache_success_count: 512
cache_success_ttl: 60
cache_failure_count: 512
cache_failure_ttl: 60
字段参考
| 字段 | 描述 |
|---|---|
server.listen | 控制台 UI 使用的明文 HTTP 监听器。生产环境中应设置 disable: true,并使用 TLS 监听器。 |
server.tls | 为 UI 和 Admin API 提供 HTTPS 服务的监听器。通过 key_file 和 cert_file 指定自有证书;否则,控制台会在启动时生成自签名证书。 |
server.status | 供编排系统执行存活和就绪探测的端点。 |
log.level | 日志详细程度。排查问题时可使用 info 或 debug。 |
log.output | 日志输出目标。写入文件时,请设置绝对路径。 |
database.dsn | PostgreSQL 连接字符串。控制台首次启动时会自动创建并迁移数据库 Schema。 |
session_options_config | 控制向 UI 用户发送的会话 Cookie。UI 仅通过 HTTPS 访问时,应设置 secure: true。 |
prometheus.addr | 控制台查询并用于展示分析数据的 Prometheus 实例 URL。 |
prometheus.whitelist | 允许控制台调用的 Prometheus 查询 API 路径正则表达式列表。 |
prometheus.basic_auth / prometheus.tls | 连接 Prometheus 时使用的可选身份认证和 TLS 设置。 |
consumer_proxy | 启用并调整消费者查询缓存。控制面通过该缓存代理来自 DP 节点的消费者查询。 |
DP Manager 配置(dp_manager_conf/conf.yaml)
DP Manager 终止来自各数据面节点的 mTLS 连接、分发配置更新并接收遥测数据。典型配置如下:
dp_manager_conf/conf.yaml
server:
listen:
host: "0.0.0.0"
port: 7900
tls:
host: "0.0.0.0"
port: 7943 # 数据面节点连接的 mTLS 端点。
status:
disable: false
host: "127.0.0.1"
port: 7901
log:
level: warn
output: stderr
database:
dsn: "postgres://api7ee:changeme@192.168.31.10:5432/api7ee"
prometheus:
addr: "http://192.168.31.11:9090"
# basic_auth:
# username: ""
# password: ""
# tls:
# server_name: ""
# insecure_skip_verify: false
# enable_client_cert: false
# key_file: ""
# cert_file: ""
# ca_file: ""
rate_limit:
enable: false
time_window: 1 # 滑动窗口长度,单位为秒。
count: 1000 # 每个 DP 节点在每个窗口内允许的最大请求数。
字段参考
| 字段 | 描述 |
|---|---|
server.listen | 内部流量使用的明文 HTTP 监听器。 |
server.tls | 数据面节点连接的 TLS 监听器,默认端口为 7943。DP Manager 向每个 DP 提供自身的证书,并使用同一信任链验证 DP 客户端证书。证书由控制面管理:自动签发,但需手动轮换。有关详情,请参见控制面与数据面之间的双向 TLS。 |
server.status | 供编排系统执行存活和就绪探测的端点。 |
log.level、log.output | 与控制台配置中的同名字段含义相同。 |
database.dsn | PostgreSQL 连 接字符串,必须指向与控制台相同的数据库。 |
prometheus | 用于推送 DP 侧遥测数据的 Prometheus 连接。basic_auth 和 tls 块的结构与控制台配置相同。 |
rate_limit.enable | 对配置同步请求启用基于单个 DP 的限流。多个 DP 节点共享一个 DP Manager 时,建议启用。 |
rate_limit.time_window、rate_limit.count | rate_limit.enable: true 时使用的滑动窗口长度和请求额度。 |