环境变量
本页列出 AISIX 支持的环境变量,帮助你在容器、脚本或部署平台中覆盖启动配置。
AISIX AI 网关使用环境变量选择启动配置文件、覆盖启动配置字段,并提供托管网关证书材料等部署相关值。
大多数运行时网关资源不通过环境变量配置。自托管模式下,请通过 Admin API 创建模型、调用方 API Key、服务提供方密钥、安全护栏、缓存策略和可观测性导出器;托管模式下,请通过 AISIX Cloud 创建。
保留环境变量
AISIX 保留以下环境变量:
| 变量 | 说明 |
|---|---|
AISIX_CONFIG | AISIX 二进制文件使用的配置文件路径,等同于传入 --config。 |
AISIX_CONFIG_PATH | 官方容器入口使用的配置文件路径,默认值为 /etc/aisix/config.yaml。 |
RUST_LOG | 进程日志指令。未设置时,AISIX 使用 observability.log_level。 |
AISIX_DP_BUDGET_STALE_MAX_SECONDS | 正常缓存 TTL 过期后,托管网关可继续复用过期预算决策的最长秒数,默认值为 600。 |
使用这些变量时,请在启动 AISIX 前赋值。
直接运行二进制文件时,可以使用 AISIX_CONFIG:
export AISIX_CONFIG="/etc/aisix/config.yaml"
aisix
使用官方容器入口时,可以使用 AISIX_CONFIG_PATH:
docker run \
-v "$(pwd)/config.prod.yaml:/etc/aisix/config.prod.yaml:ro" \
-e AISIX_CONFIG_PATH="/etc/aisix/config.prod.yaml" \
ghcr.io/api7/aisix:0.1.0
容器入口会在启动二进制文件前清除 AISIX_CONFIG_PATH,因为它是入口变量,不是启动配置字段。
启动配置覆盖
AISIX 加载配置文件后,会应用以 AISIX_ 为前缀的环境变量覆盖项。前缀后使用单下划线,嵌套字段之间使用双下划线。
以下示例覆盖代理监听地址:
export AISIX_PROXY__ADDR="0.0.0.0:3000"
以下示例使用逗号分隔值覆盖 Admin Key 列表:
export AISIX_ADMIN__ADMIN_KEYS="admin-key-1,admin-key-2"
常见覆盖变量包括:
| 变量 | 覆盖字段 |
|---|---|
AISIX_PROXY__ADDR | proxy.addr |
AISIX_ADMIN__ADDR | admin.addr |
AISIX_ADMIN__ADMIN_KEYS | admin.admin_keys |
AISIX_ETCD__ENDPOINTS | etcd.endpoints |
AISIX_ETCD__PREFIX | etcd.prefix |
AISIX_OBSERVABILITY__LOG_LEVEL | observability.log_level |
AISIX_CACHE__BACKEND | cache.backend |
AISIX_CACHE__REDIS__MODE | cache.redis.mode |
AISIX_CACHE__REDIS__URL | cache.redis.url |
AISIX_CACHE__REDIS__MASTER_NAME | cache.redis.master_name |
AISIX_CACHE__REDIS__USERNAME | cache.redis.username |
AISIX_CACHE__REDIS__PASSWORD | cache.redis.password |
AISIX_CACHE__REDIS__DATABASE | cache.redis.database |
AISIX_RATELIMIT__BACKEND | ratelimit.backend |
AISIX_RATELIMIT__REDIS__MODE | ratelimit.redis.mode |
AISIX_RATELIMIT__REDIS__URL | ratelimit.redis.url |
AISIX_RATELIMIT__REDIS__MASTER_NAME | ratelimit.redis.master_name |
AISIX_RATELIMIT__REDIS__USERNAME | ratelimit.redis.username |
AISIX_RATELIMIT__REDIS__PASSWORD | ratelimit.redis.password |
AISIX_RATELIMIT__REDIS__DATABASE | ratelimit.redis.database |
AISIX_RATELIMIT__CONCURRENCY_TTL_SECS | ratelimit.concurrency_ttl_secs |
AISIX_BEDROCK_ENDPOINT_URL | 顶层 bedrock_endpoint_url。 |
etcd.endpoints 和 admin.admin_keys 在环境变量中接受逗号分隔列表。
对于 Redis Cluster 和 Sentinel 节点列表,请在启动配置文件中配置 cache.redis.nodes、cache.redis.sentinels、ratelimit.redis.nodes 或 ratelimit.redis.sentinels。
配置文件字段请参见配置文件。
托管网关变量
托管网关同样使用 AISIX_ 覆盖机制设置托管模式启动配置。
| 变量 | 说明 |
|---|---|
AISIX_MANAGED__ENABLED | 设置为 true 时启用托管模式。 |
AISIX_MANAGED__CP_BASE_URL | 托管控制面地址,用于心跳、遥测、证书轮换和预算检查。 |
AISIX_MANAGED__CP_ETCD_ENDPOINT | 网关启动时使用的托管 etcd 端点。 |
AISIX_MANAGED__CP_CA_CERT_FILE | 可选 CA bundle 文件,用于信任 AISIX Cloud 控制面和托管 etcd 的 TLS 连接。 |
AISIX_MANAGED__CP_CERT_PEM | 用于与 AISIX Cloud 建立 mTLS 的内联客户端证书 PEM。 |
AISIX_MANAGED__CP_KEY_PEM | 与客户端证书配对的内联私钥 PEM。 |
AISIX_MANAGED__CP_CA_PEM | 作为信任锚的内联 CA 证书 PEM。 |
AISIX_MANAGED__CP_CERT_FILE | 客户端证书 PEM 文件路径。 |
AISIX_MANAGED__CP_KEY_FILE | 私钥 PEM 文件路径。 |
AISIX_MANAGED__CP_CA_FILE | CA 证书 PEM 文件路径。 |
AISIX_MANAGED__MTLS_DIR | 网关持久化已生成 mTLS bundle 的目录。 |
AISIX_MANAGED__DP_ID_FILE | 网关持久化托管网关 ID 的文件。 |
AISIX_MANAGED__SNAPSHOT_CACHE_PATH | 控制面故障期间使用的磁盘快照缓存文件路径。 |
证书、私钥和 CA bundle 应选择内联 PEM 变量或文件路径变量之一。同一个 bundle 不要混用内联和文件形式。
托管模式设置请参见托管网关设置。