本文為您介紹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 |