脚本引擎提供了一些内置的nginx变量给业务脚本使用, 业务脚本通过ctyun.var("变量名")获取。由于全局task脚本是全局性的(不是请求相关的),所以在全局task脚本中不能使用变量。
变量名 | 变量说明 | 举例 |
---|---|---|
arg_参数名 | url中的某个具体参数的值 | 比如请求为:http://ctyun.cn?a=1&b=2,调用ctyun.var("arg_a")返回"1"。 |
http_参数名 | 某个请求头xxx的值 | 比如请求为: http://ctyun.cn/a -H "test: hello" -H "head-acc: 222", 调用ctyun.var("http_test")返回“hello”。 调用ctyun.var("http_head_acc") 返回“222”。 如果xxx有破折号,通过var调用时,用下划线代替。 |
cookie_xxx | 请求cookie头中的name值 | 使用方式同上。 |
scheme | 请求使用的Web协议,“http” 或 “https” | ctyun.var("scheme") 返回http。 |
server_protocol | 服务器的HTTP版本,通常为 “HTTP/1.0” 或 “HTTP/1.1” | ctyun.var("server_protocol") 返回HTTP/1.1。 |
time_iso8601 | 服务器时间的ISO 8610格式 | ctyun.var("time_iso8601") 返回 2022-07-14T11:13:56+08:00。 |
time_local | 服务器时间 | ctyun.var("time_local") 返回14/Jul/2022:11:13:56 +0800。 |
time_http | 服务器时间的http表示法 | ctyun.var("time_http") 返回 Thu, 14 Jul 2022 03:13:56 GMT。 |
host | 客户端请求的域名 | ctyun.var("host") 返回ctyun.cn。 |
request_uri | 用户原始请求url包括查询参数 | 比如客户端发送请求uri为: /%E4%BD%A0%E5%A5%BD?tt=123 ctyun.var("request_uri") 返回/%E4%BD%A0%E5%A5%BD?tt=123。 |
uri | request_uri变量中不带查询参数部分,且进行了urldecode | 比如客户端发送请求uri为: /%E4%BD%A0%E5%A5%BD?tt=123 ctyun.var("uri") 返回 /你好。 |
query_string | 查询参数, request_uri的参数部分 | 比如:请求uri为: /hello?tt=123&t2=%E4%BD%A0%E5%A5%BD ctyun.var("query_string") 返回 tt=123&t2=%E4%BD%A0%E5%A5%BD。 |
request_method | HTTP请求方法,通常为"GET"或"POST"等 | ctyun.var("request_method") 返回GET。 |
remote_addr | 返回客户端ip | ctyun.var("remote_addr") 返回172.21.51.44。 |
remote_port | 客户端端口号 | ctyun.var("remote_port") 返回38966。 |
server_addr | 服务端ip | ctyun.var("server_addr") 返回172.21.51.88。 |
server_port | 服务端端口号 | ctyun.var("server_port") 返回80。 |