本文为您介绍AScript脚本中所有内置变量的含义和对应Nginx原生变量。

内置变量表

AScript内置变量如下表所示。
内置变量名 含义 对应Nginx原生变量
$arg_{name} Query String中的参数name值。Query String表示HTTP请求中的请求参数。 ngx.var.arg_{name}
说明 {name}中出现的连接号(-),需要使用下划线(_)替代,例如:X-USER-ID对应为$arg_x_user_id
$http_{name} 请求头中的name值。 ngx.var.http_{name}
说明 {name}中出现的连接号(-),需要使用下划线(_)替代,例如:X-USER-ID对应为$http_x_user_id
$cookie_{name} 请求cookie头中的name值。 ngx.var.cookie_{name}
说明 {name}中出现的连接号(-),需要使用下划线(_)替代,例如:X-USER-ID对应为$cookie_x_user_id
$scheme 协议类型。 ngx.var.scheme
$server_protocol 协议版本。 ngx.var.server_protocol
$host 原始host。 ngx.var.host
$uri 原始URI。 ngx.var.raw_uri
$args $args表示当前HTTP请求的全部请求参数,但不包含问号(?)。例如:http://www.a.com/1k.file?k1=v1&k2=v2
  • $arg_k1可以获得对应的v1值。
  • $args可以获得整个请求参数字符串,即k1=v1&k2=v2,不包括问号(?)。
ngx.var.args
$request_method 请求方法。 ngx.var.request_method
$request_uri uri+'?'+args的内容。 ngx.var.request_uri
$remote_addr 客户的IP地址。 ngx.var.remote_addr
说明
  • 内置变量名前的美元符号($)仅为强调其内置变量属性,删除后不影响使用。
  • 内置变量不允许担当左值,即内置变量不允许被赋值。
  • 每条AScript规则中最多支持使用200个全局变量,局部变量不限。如果全局变量超过200个请自定义函数,并在函数中以局部变量的形式使用全局变量。