本文为您介绍EdgeScript脚本中所有内置变量的含义和对应nginx原生变量。
说明 
- 内置变量名前的特殊符号($)是为了强调内置变量属性,删除后不影响使用。
 - 内置变量不允许担当左值,即内置变量不允许被赋值。
 - 每条EdgeScript规则中最多支持200个全局变量,局部变量不限制。如果全局变量超过200个请自定义函数,并在函数中以局部变量的形式使用全局变量。
 
EdgeScript内置变量如下表所示。 
| 内置变量名 | 含义 | 对应nginx原生变量 | 
|---|---|---|
| $arg_{name} | Query String中的参数name值。Query String表示HTTP请求中的请求参数。 | $arg_  说明  {name}中出现的连接号(-),需要使用req_uri_arg函数来取值(不使用变量$arg_),例如:用户请求http://example.com/1.jpg?example-demo=123,取值函数式为req_uri_arg('example-demo')。 | 
| $http_{name} | 请求头中的name值。 | $http_  说明  {name}中出现的连接号(-),需要使用下划线(_)替代,例如:X-USER-ID对应为$http_x_user_id。 | 
| $cookie_{name} | 请求cookie头中的name值。 | $cookie_  说明  {name}中出现的连接号(-),需要使用req_cookie函数来取值(不使用变量$cookie_),例如:用户请求cookie:example-demo=123,取值函数式为req_cookie('example-demo')。 | 
| $scheme | 协议类型。 | $scheme | 
| $server_protocol | 协议版本。 | $server_protocol | 
| $host | 原始host。 | $host | 
| $uri | 原始URI。 | 无 | 
| $args | $args表示当前HTTP请求的全部请求参数,但不包含问号(?)。例如:http://example.aliyundoc.com/1k.file?k1=v1&k2=v2。 
  | $args | 
| $request_method | 请求方法。 | $request_method | 
| $request_uri | uri+'?'+args的内容。 | $request_uri | 
| $remote_addr | 客户的IP地址(即x-forwarded-for请求头携带的第一个IP)。 | $remote_addr |