本文为您介绍EdgeScript脚本中所有内置变量的含义和对应nginx原生变量。
内置变量名前的特殊符号($)是为了强调内置变量属性,删除后不影响使用。
内置变量不允许担当左值,即内置变量不允许被赋值。
每条EdgeScript规则中最多支持200个变量,如果变量超过200个,您可以参考函数拆分示例请将整体逻辑拆分为多个自定义函数,并且保证每个自定义函数中变量不超过200个。
EdgeScript内置变量。
内置变量名 | 含义 | 对应nginx原生变量 |
$arg_{name} |
| $arg_ 说明
|
$http_{name} | 请求头中的name值。 | $http_ 说明
|
$cookie_{name} | 请求cookie头中的name值。 | $cookie_ 说明
|
$scheme | 协议类型。 | $scheme |
$server_protocol | 协议版本。 | $server_protocol |
$host | 原始host。 | $host |
$uri | 原始URI。 | 无 |
$args |
| $args |
$request_method | 请求方法。 | $request_method |
$request_uri |
| $request_uri |
$remote_addr | 客户的IP地址(即x-forwarded-for请求头携带的第一个IP)。 | $remote_addr |
函数拆分示例
当您的规则中变量超过200个时,需要您将整体逻辑拆分为多个自定义函数,并且保证每个自定义函数中变量不超过200个。
#如果变量超限制,可以这样拆分
def judeg_arg() {
#参数判断相关逻辑
x
x
}
def judeg_time() {
#时间判断相关逻辑
x
x
}
def judeg_token() {
#加密判断相关逻辑
x
x
}
judeg_arg()
judeg_time()
judeg_token()