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

API7 网关控制面配置参考

API7 网关控制面是存储配置并协调数据面(DP)节点的中央管理组件。控制面由两个服务组成,每个服务使用独立的配置文件。以下宿主机文件路径适用于 Docker Compose 部署:

  • 控制台:提供 Web UI 和 Admin API,通过 dashboard_conf/conf.yaml 配置。
  • DP Manager:负责与 DP 节点同步配置和交换遥测数据,通过 dp_manager_conf/conf.yaml 配置。

Docker Compose 将这两个文件分别挂载到对应容器中。Helm 部署则通过 dashboard_configuration 和 dp_manager_configuration values 渲染各自 ConfigMap 中的 config.yaml;本页对应的控制面 Chart 3.10.13 将控制台配置挂载到 /app/conf/config.yaml,DP Manager 通过 -c /api7-ee/config.yaml 加载配置。请按实际安装版本的 Chart 核对挂载路径和启动参数,不要把 Compose 宿主机路径当作通用 Pod 路径。本页介绍配置中的常用字段,不涵盖完整的配置结构。有关完整部署说明,请参见使用 Docker Compose 部署或在 Kubernetes 上部署 API7 企业版。

控制台配置(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.dsnPostgreSQL 连接字符串。控制台首次启动时会自动创建并迁移数据库 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 个 Token。
count: 1000 # 桶容量,以及每个窗口补充的 Token 数。

字段参考​

字段描述
server.listen内部流量使用的明文 HTTP 监听器。
server.tls数据面节点连接的 TLS 监听器,默认端口为 7943。DP Manager 向每个 DP 提供自身的证书,并使用同一信任链验证 DP 客户端证书。证书由控制面管理:自动签发,但需手动轮换。有关详情,请参见控制面与数据面之间的双向 TLS。
server.status供编排系统执行存活和就绪探测的端点。
log.level、log.output与控制台配置中的同名字段含义相同。
database.dsnPostgreSQL 连接字符串,必须指向与控制台相同的数据库。
prometheus用于推送 DP 侧遥测数据的 Prometheus 连接。basic_auth 和 tls 块的结构与控制台配置相同。
rate_limit.enable为消费者查询和开发者查询端点启用进程本地的 Token 桶。每个端点有独立的桶,由到达该 DP Manager 进程的所有已认证调用方共享。
rate_limit.time_window、rate_limit.countcount 同时是突发容量和在 time_window 秒内匀速补充的 Token 数。桶耗尽时返回 HTTP 429。

这两个桶仅适用于 GET /api/dataplane/consumer_query 和 GET /api/dataplane/developer_query,不会限制 /v3 下的配置获取或 watch、心跳或遥测。每个 DP Manager 进程都有独立的内存桶,因此副本之间不共享限流状态。

后续步骤​