跳到主要内容

环境变量

本页列出 AISIX 支持的环境变量,帮助你在容器、脚本或部署平台中覆盖启动配置。

AISIX AI 网关使用环境变量选择启动配置文件、覆盖启动配置字段,并提供托管网关证书材料等部署相关值。

大多数运行时网关资源不通过环境变量配置。自托管模式下,请通过 Admin API 创建模型、调用方 API Key、服务提供方密钥、安全护栏、缓存策略和可观测性导出器;托管模式下,请通过 AISIX Cloud 创建。

保留环境变量

AISIX 保留以下环境变量:

变量说明
AISIX_CONFIGAISIX 二进制文件使用的配置文件路径,等同于传入 --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__ADDRproxy.addr
AISIX_ADMIN__ADDRadmin.addr
AISIX_ADMIN__ADMIN_KEYSadmin.admin_keys
AISIX_ETCD__ENDPOINTSetcd.endpoints
AISIX_ETCD__PREFIXetcd.prefix
AISIX_OBSERVABILITY__LOG_LEVELobservability.log_level
AISIX_CACHE__BACKENDcache.backend
AISIX_CACHE__REDIS__MODEcache.redis.mode
AISIX_CACHE__REDIS__URLcache.redis.url
AISIX_CACHE__REDIS__MASTER_NAMEcache.redis.master_name
AISIX_CACHE__REDIS__USERNAMEcache.redis.username
AISIX_CACHE__REDIS__PASSWORDcache.redis.password
AISIX_CACHE__REDIS__DATABASEcache.redis.database
AISIX_RATELIMIT__BACKENDratelimit.backend
AISIX_RATELIMIT__REDIS__MODEratelimit.redis.mode
AISIX_RATELIMIT__REDIS__URLratelimit.redis.url
AISIX_RATELIMIT__REDIS__MASTER_NAMEratelimit.redis.master_name
AISIX_RATELIMIT__REDIS__USERNAMEratelimit.redis.username
AISIX_RATELIMIT__REDIS__PASSWORDratelimit.redis.password
AISIX_RATELIMIT__REDIS__DATABASEratelimit.redis.database
AISIX_RATELIMIT__CONCURRENCY_TTL_SECSratelimit.concurrency_ttl_secs
AISIX_BEDROCK_ENDPOINT_URL顶层 bedrock_endpoint_url

etcd.endpointsadmin.admin_keys 在环境变量中接受逗号分隔列表。

对于 Redis Cluster 和 Sentinel 节点列表,请在启动配置文件中配置 cache.redis.nodescache.redis.sentinelsratelimit.redis.nodesratelimit.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_FILECA 证书 PEM 文件路径。
AISIX_MANAGED__MTLS_DIR网关持久化已生成 mTLS bundle 的目录。
AISIX_MANAGED__DP_ID_FILE网关持久化托管网关 ID 的文件。
AISIX_MANAGED__SNAPSHOT_CACHE_PATH控制面故障期间使用的磁盘快照缓存文件路径。

证书、私钥和 CA bundle 应选择内联 PEM 变量或文件路径变量之一。同一个 bundle 不要混用内联和文件形式。

托管模式设置请参见托管网关设置