API7 网关控制面配置参考
API7 网关控制面是存储配置并与数据面(DP) 节点协调的中央管理组件。它由两个服务组成,每个服务都有自己的配置文件:
- 控制台 — 为 Web UI 提供服务 和管理员 API。通过
dashboard_conf/conf.yaml配置。 - DP 管理器 — 处理与 DP 节点的配置同步和遥测交换。通过
dp_manager_conf/conf.yaml配置。
这两个文件在部署时都会安装到各自的容器(或 Pod)中。本页记录了这些配置文件中最常用的字段,而不是完整的配置模式。有关完整的部署说明,请参阅使用 Docker Compose 进行部署 或在 Kubernetes 上部署。
控制台配置(dashboard_conf/conf.yaml)
控制台可以在任何启用的监听器上公开 Web UI 和管理 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 | HTTPS 为 UI 和管理 API 提供服务的监听器。提供key_file和cert_file来使用自己的证书;否则控制台会在启动时生成自签名证书。 |
server.status | 端点被编排器用于活动和就绪探针。 |
log.level | 记录详细程度。故障排除时使用 info 或 debug。 |
log.output | 日志消息的目的地。设置为写入文件的绝对路径。 |
database.dsn | PostgreSQL 连接字符串。控制台会在首次启动时自动创建并迁移其数据库模式。 |
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 管理器配置 (dp_manager_conf/conf.yaml)
DP 管理器终止来自每个数据面节点的 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 | 数据面节点连接到的端口 7943 上的 TLS 监听器。 DP 管理器向每个 DP 提供自己的证书,并根据同一信任链验证 DP 客户端证书。证书由控制面管理;签发是自动的,但轮换是手动操作 — 请参阅客户端 mTLS。 |
server.status | 端点被编排器用于活性和就绪探针。 |
log.level,log.output | 与控制台的语义相同。 |
database.dsn | PostgreSQL 连接字符串。必须指向与控制台相同的数据库。 |
prometheus | Prometheus 连接用于推送 DP 侧遥测。 basic_auth 和 tls 块的形状与控制台配置中的形状相同。 |
rate_limit.enable | 对配置同步请求启用每个 DP 限流。当许多 DP 节点共享一个 DP Manager 时非常有用。 |
rate_limit.time_window,rate_limit.count | rate_limit.enable: true时的滑动窗口长度和请求预算。 |