跳到主要内容
版本:3.10.x

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.tlsHTTPS 为 UI 和管理 API 提供服务的监听器。提供key_filecert_file来使用自己的证书;否则控制台会在启动时生成自签名证书。
server.status端点被编排器用于活动和就绪探针。
log.level记录详细程度。故障排除时使用 infodebug
log.output日志消息的目的地。设置为写入文件的绝对路径。
database.dsnPostgreSQL 连接字符串。控制台会在首次启动时自动创建并迁移其数据库模式。
session_options_config控制发送给 UI 用户的会话 cookie。当 UI 只能通过 HTTPS 访问时,设置 secure: true
prometheus.addr控制台查询以呈现分析的 Prometheus 实例的 URL。
prometheus.whitelistPrometheus 查询 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.levellog.output与控制台的语义相同。
database.dsnPostgreSQL 连接字符串。必须指向与控制台相同的数据库。
prometheusPrometheus 连接用于推送 DP 侧遥测。 basic_authtls 块的形状与控制台配置中的形状相同。
rate_limit.enable对配置同步请求启用每个 DP 限流。当许多 DP 节点共享一个 DP Manager 时非常有用。
rate_limit.time_windowrate_limit.countrate_limit.enable: true时的滑动窗口长度和请求预算。

后续步骤