EdgeScript内置变量表

本文为您介绍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

  • $arg_k1可以获得对应的v1值。

  • $args可以获得整个请求参数字符串,即k1=v1&k2=v2,不包括问号(?)。

$args

$request_method

请求方法。

$request_method

$request_uri

uri+'?'+args的内容。

$request_uri

$remote_addr

客户端与DCDN节点建联使用的IP地址。

$remote_addr