Skip to content

配置说明

API Gateway 使用 YAML 配置文件。本文档描述了所有可用的配置选项。

配置文件结构

yaml
version: v1              # 配置版本
port: 8080               # 网关监听端口
baseuri: /v1             # 基础 URI 前缀(可选)

cache:                   # 缓存配置(可选)
  engine: redis
  host: 127.0.0.1
  port: 6379
  password: ""
  db: 0

healthcheck:             # 健康检查配置
  outer:                 # 外部健康检查
    enable: true
    path: /healthz
    ok: true
  inner:                 # 内部服务健康检查
    enable: true
    interval: 30         # 检查间隔(秒)
    timeout: 5           # 超时时间(秒)

backend:                 # 默认后端(可选)
  service:
    protocol: https
    name: example.com
    port: 443

routes:                  # 路由定义
  - name: route-name
    path: /api
    path_type: prefix    # prefix 或 regex
    backend:
      service:
        protocol: https
        name: backend.example.com
        port: 443
        request:
          path:
            disable_prefix_rewrite: false
            rewrites:
              - "^/api/(.*):/$1"
          headers:
            X-Custom-Header: value
          query:
            key: value
        response:
          headers:
            X-Response-Header: value
        auth:
          type: bearer
          token: your-token

配置字段

顶级字段

字段类型必需默认值描述
versionstring-配置版本(当前为 v1
portint8080网关监听的端口
baseuristring-所有路由的基础 URI 前缀
cacheobject-缓存配置
healthcheckobject-健康检查配置
backendobject-默认后端服务
routesarray[]路由定义

缓存配置

字段类型必需默认值描述
enginestringredis缓存引擎(当前仅支持 redis
hoststring127.0.0.1Redis 主机
portint6379Redis 端口
passwordstring-Redis 密码
dbint0Redis 数据库编号
prefixstringgozoox-api-gateway:键前缀

健康检查配置

外部健康检查

字段类型必需默认值描述
enableboolfalse启用外部健康检查端点
pathstring/healthz健康检查端点路径
okbooltrue始终返回 OK(跳过实际检查)

内部健康检查

字段类型必需默认值描述
enableboolfalse启用内部服务健康检查
intervalint30检查间隔(秒)
timeoutint5请求超时(秒)

路由配置

字段类型必需默认值描述
namestring-路由名称(用于日志记录)
pathstring-要匹配的路径模式
path_typestringprefix匹配类型:prefixregex
backendobject-后端服务配置

服务配置

字段类型必需默认值描述
protocolstringhttp协议:httphttps
namestring否*-服务主机名或 IP(单服务模式必需)
portint否*80服务端口(单服务模式必需)
algorithmstringround-robin负载均衡算法:round-robinweightedleast-connectionsip-hash
serversarray[]负载均衡的服务器实例列表(如果设置,启用多服务模式)
requestobject-请求转换
responseobject-响应转换
authobject-身份验证配置
health_checkobject-服务特定的健康检查

注意: 单服务模式下,nameport 是必需的。多服务模式下,servers 数组是必需的。

服务器配置(多服务模式)

字段类型必需默认值描述
namestring-服务器主机名或 IP
portint-服务器端口
protocolstring-协议(未设置时继承服务配置)
weightint1权重(用于 weighted 算法)
disabledboolfalse禁用服务器(服务器默认启用)
requestobject-服务器特定的请求配置(覆盖全局)
responseobject-服务器特定的响应配置(覆盖全局)
authobject-服务器特定的身份验证(覆盖全局)
health_checkobject-服务器特定的健康检查(覆盖全局)

请求配置

字段类型必需默认值描述
pathobject-路径重写配置
headersmap-额外的请求头
querymap-额外的查询参数

路径重写

字段类型必需默认值描述
disable_prefix_rewriteboolfalse禁用自动前缀移除
rewritesarray[]路径重写规则(格式:pattern:replacement

响应配置

字段类型必需默认值描述
headersmap-额外的响应头

身份验证配置

字段类型必需默认值描述
typestring-认证类型:basicbearerjwtoauth2oidc
usernamestring-用户名(用于基本认证)
passwordstring-密码(用于基本认证)
tokenstring-Bearer token
secretstring-JWT 密钥
providerstring-OAuth2 提供商
client_idstring-OAuth2 客户端 ID
client_secretstring-OAuth2 客户端密钥
redirect_urlstring-OAuth2 重定向 URL
scopesarray[]OAuth2 作用域

路径重写规则

路径重写规则使用格式 pattern:replacement

  • ^/api/(.*):/$1 - 移除 /api 前缀
  • ^/v1/user/(.*):/user/$1 - 转换路径
  • ^/old/(.*):/new/$1 - 替换路径段

模式使用正则表达式。替换可以引用捕获组。

示例

查看示例了解完整的配置示例。

负载均衡

有关负载均衡配置,请参阅负载均衡指南。

下一步

Released under the MIT License.