全部產品
Search
文件中心

CDN:EdgeScript內建變數表

更新時間:May 27, 2025

本文為您介紹EdgeScript指令碼中所有內建變數的含義和對應nginx原生變數。

說明
  • 內建變數名前的特殊符號($)是為了強調內建變數屬性,刪除後不影響使用。

  • 內建變數不允許擔當左值,即內建變數不允許被賦值。

  • 每條EdgeScript規則中最多支援200個變數,如果變數超過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

客戶的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()