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

环境变量

API7 网关支持使用环境变量配置消费者凭证SSL 证书和某些插件。有一些环境变量保留用于特殊用途,还有一些可以使用自定义名称创建并引用。

Reserved 环境变量

API7 网关目前保留以下环境变量:

变量名称描述
APISIX_DEPLOYMENT_ETCD_HOSTetcd 主机地址。
APISIX_WORKER_PROCESSES工作进程数量。

要使用这些配置,请在启动网关前为环境变量赋值。

Custom 环境变量

你可以在配置文件和某些插件中使用自定义环境变量。

注意

环境变量直接配置在每个数据面(网关实例)上,并在重启后立即生效。由于这种配置方式,你无法从控制面查看实际值。此外,同一网关组中不同网关实例的环境变量配置不一致,可能导致不可预测的行为和潜在的 API 故障。

消费者凭证

消费者凭证中的以下敏感字段可以通过 NGINX env 指令存储在环境变量中:

  • Key Authentication 凭证中的 key
  • Basic Authentication 凭证中的 password
  • JWT Authentication 凭证中的 secretpublic key
  • HMAC Authentication 凭证中的 secret key

以下示例演示如何配置 Key Authentication 凭证,以从环境变量获取用户身份验证密钥。

设置环境变量

部署网关实例时设置环境变量。请按照使用 Docker Compose 部署的说明,然后将环境变量添加到生成的脚本中。

Docker 示例:将自定义环境变量添加到 docker run 命令:

docker run -d -e API7_CONTROL_PLANE_ENDPOINTS='["https://your-host-or-ip:443"]' \
-e API7_GATEWAY_GROUP_SHORT_ID=default \
-e ALICE_AUTH_KEY=alice-key \
-e API7_CONTROL_PLANE_CERT="-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----" \
-e API7_CONTROL_PLANE_KEY="-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----" \
-e API7_CONTROL_PLANE_CA="-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----" \
-p 9080:9080 \
-p 9443:9443 \
api7/api7-ee-3-gateway:latest
备注

部署后,必须重启网关实例才能修改其环境变量。

使用环境变量配置消费者凭证

  1. 从侧边导航栏中选择网关组的消费者(Consumers)
  2. 点击添加消费者(+ Add Consumer)
  3. 在对话框中执行以下操作:
    • 在**名称(Name)**字段中输入 Alice
    • 点击添加(Add)
  4. 凭证(Credentials)选项卡中,点击添加密钥身份验证凭证(+ Add Key Authentication Credential)
  5. 在对话框中执行以下操作:
    • 在**名称(Name)**字段中输入 primary-key
    • 密钥(Key)字段中选择手动输入(Manually Input),然后输入 $env://ALICE_AUTH_KEY
    • 点击添加(Add)
  6. 要进行验证,请在服务级别启用 key-auth 插件(参阅消费者和凭证),然后使用 API 密钥发送请求,以验证身份验证是否生效。

SSL 证书

SSL 证书中的敏感字段 private keycertificate 可以通过 NGINX env 指令存储在环境变量中。

以下示例演示如何配置 SSL 证书,以从环境变量获取敏感数据。

设置环境变量

部署网关实例时设置环境变量。请按照使用 Docker Compose 部署的说明,然后将环境变量添加到生成的脚本中。

Docker 示例:将自定义环境变量添加到 docker run 命令:

docker run -d -e API7_CONTROL_PLANE_ENDPOINTS='["https://your-host-or-ip:443"]' \
-e API7_GATEWAY_GROUP_SHORT_ID=default \
-e SSL_CERTIFICATE="-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----" \
-e SSL_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----" \
-e API7_CONTROL_PLANE_CERT="..." \
-e API7_CONTROL_PLANE_KEY="..." \
-e API7_CONTROL_PLANE_CA="..." \
-p 9080:9080 \
-p 9443:9443 \
api7/api7-ee-3-gateway:latest
备注

部署后,必须重启网关实例才能修改其环境变量。

使用环境变量配置 SSL 证书

  1. 从侧边导航栏中选择网关组的SSL 证书(SSL Certificates)
  2. 点击添加 SSL 证书(+ Add SSL Certificate)
  3. 在对话框中执行以下操作:
    • 在**证书(Certificate)**字段中输入 $env://SSL_CERTIFICATE
    • 在**密钥(Key)**字段中输入 $env://SSL_PRIVATE_KEY
    • 点击添加(Add)