内置变量
API7 网关中的内置变量是可以在配置中直接引用的预定义变量。它们通 常用于插件配置、路由匹配和日志自定义。
API7 网关支持三种类型的内置变量:
- NGINX 变量
- APISIX 变量
- 自定义变量
这些变量按照特定的顺序进行求值。
NGINX 变量
NGINX 提供用于获取请求和响应信息的变量。
常用变量包括:
| 变量 | 描述 |
|---|---|
upstream_addr | 上游服务器的 IP 地址和端口,或 UNIX 域套接字路径。 |
remote_addr | 客户端地址。 |
request_method | 请求方法,例如 GET 或 POST。 |
request_uri | 完整的原始请求 URI,包括参数。 |
server_name | 接受请求的服务器名称。 |
status | 响应状态。在 NGINX 确定响应状态之前,该值可能为 000。请在响应阶段的上下文中使用,例如调试会话采样规则或日志插件;不要用于路由匹配。 |
uri | 当前规范化的请求 URI,在请求处理过程中可能发 生变化。 |
http_user_agent | User-Agent 请求头的值。 |
有关更多信息,请参阅 NGINX 变量的完整列表。
APISIX 变量
除了 NGINX 变量 之外,APISIX 还提供了各种内置变量:
| 变量名称 | 描述 |
|---|---|
post_arg_* | 内容类型为 application/x-www-form-urlencoded 时的 HTTP POST 表单数据。星号将替换为 POST 表单数据的实际名称。 |
post_arg.* | 内容类型为 application/json、application/x-www-form-urlencoded 或 multipart/form-data 时的 HTTP POST 请求体参数。星号替换为 POST 参数的实际名称。支持类似 JSON Path 的选择器,如 post_arg.model.version 和 post_arg.messages[*].content[*].type。 |
arg_* | URL 查询字符串。星号替换为实际的查询参数名称。 |
http_* | HTTP 请求头。星号替换为实际的请求头名称。 |
cookie_* | 请求 Cookie。星号替换为实际的 Cookie 名称。 |
method | HTTP 请求方法,例如 GET 或 POST。等效的 NGINX 变量为 request_method。 |
balancer_ip | 上游服务器 IP。 |
balancer_port |