本文為您介紹AScript腳本中所有內(nèi)置變量的含義和對(duì)應(yīng)Nginx原生變量。

內(nèi)置變量表

AScript內(nèi)置變量如下表所示。
內(nèi)置變量名 含義 對(duì)應(yīng)Nginx原生變量
$arg_{name} Query String中的參數(shù)name值。Query String表示HTTP請(qǐng)求中的請(qǐng)求參數(shù)。 ngx.var.arg_{name}
說明 {name}中出現(xiàn)的連接號(hào)(-),需要使用下劃線(_)替代,例如:X-USER-ID對(duì)應(yīng)為$arg_x_user_id
$http_{name} 請(qǐng)求頭中的name值。 ngx.var.http_{name}
說明 {name}中出現(xiàn)的連接號(hào)(-),需要使用下劃線(_)替代,例如:X-USER-ID對(duì)應(yīng)為$http_x_user_id
$cookie_{name} 請(qǐng)求cookie頭中的name值。 ngx.var.cookie_{name}
說明 {name}中出現(xiàn)的連接號(hào)(-),需要使用下劃線(_)替代,例如:X-USER-ID對(duì)應(yīng)為$cookie_x_user_id
$scheme 協(xié)議類型。 ngx.var.scheme
$server_protocol 協(xié)議版本。 ngx.var.server_protocol
$host 原始host。 ngx.var.host
$uri 原始URI。 ngx.var.raw_uri
$args $args表示當(dāng)前HTTP請(qǐng)求的全部請(qǐng)求參數(shù),但不包含問號(hào)(?)。例如:http://www.a.com/1k.file?k1=v1&k2=v2
  • $arg_k1可以獲得對(duì)應(yīng)的v1值。
  • $args可以獲得整個(gè)請(qǐng)求參數(shù)字符串,即k1=v1&k2=v2,不包括問號(hào)(?)。
ngx.var.args
$request_method 請(qǐng)求方法。 ngx.var.request_method
$request_uri uri+'?'+args的內(nèi)容。 ngx.var.request_uri
$remote_addr 客戶的IP地址。 ngx.var.remote_addr
說明
  • 內(nèi)置變量名前的美元符號(hào)($)僅為強(qiáng)調(diào)其內(nèi)置變量屬性,刪除后不影響使用。
  • 內(nèi)置變量不允許擔(dān)當(dāng)左值,即內(nèi)置變量不允許被賦值。
  • 每條AScript規(guī)則中最多支持使用200個(gè)全局變量,局部變量不限。如果全局變量超過200個(gè)請(qǐng)自定義函數(shù),并在函數(shù)中以局部變量的形式使用全局變量。