Nginx中变量详解
一、http Croe模块
$http_user_agent | 客户端UA信息 |
---|---|
$http_cookie | 客户端COOKIE |
$cookie_name |
参考$arg_name的用法 |
$arg_name | 获取URI中的GET参数,比方说http://localhost:8080/test?class=3,则用$arg_class获取。注:1)不区分大小写,例如CLASS=2同样使用$arg_class获取;2)如果参数escape编码了,使用set_unescape_uri 反编码,例如: set_unescape_uri $name $arg_name; set_unescape_uri $class $arg_class; echo “name: $name”; echo “class: $class” |
$args | 获取url中的GET参数字符串,www.129.com/?name=a1&b=b1,$args=name=a1&b=b1 |
$binary_remote_addr | 二进制格式的客户端地址,例如\xC0\xA8P\x81,表示为192.168.80.1 |
$body_bytes_sent | 响应体的大小,即使发生了中断或者是放弃,也是一样的准确。 |
$bytes_sent | number of bytes sent to a client |
$connection | connection serial number |
$connection_requests | current number of requests made through a connection |
$content_length | 请求头部信息中的Content-Length |
$content_type | 请求头部信息中的Content-Type |
$document_root | 变量的值为当前请求的location(http,server,location,location中的if)中root指令中指定的值,或alias的值 |
$document_uri | 同$uri |
$host | 该变量的值等于请求头中Host的值。如果Host无效时,那么就是处理该请求的server的名称。在下列情况中,$host变量的取值不同于$http_host变量。1) 当请求头中的Host字段未指定(使用默认值)或者为空值,那么$host等于server_name指令指定的值。 2) 当Host字段包含端口是,$host并不包含端口号。另外,从0.8.17之后的nginx中,$host的值总是小写。 |
$hostname | 有gethostname返回值设置机器名 |
$http_ *name* |
该变量的值为HTTP 请求头HEADER,具体使用时会转换为小写,并且将“——”(破折号)转换为“_”(下划线)。例如$http_Connection |
$https | “on ” if connection operates in SSL mode, or an empty string otherwise |
$is_args | “? ” if a request line has arguments, or an empty string otherwise |
$limit_rate | 该变量允许限制连接速率,参考 limit_rate |
$msec | current time in seconds with the milliseconds resolution (1.3.9, 1.2.6) |
$nginx_version | 版本 |
$pid | Pid |
$pipe | “p” if request was pipelined, “.” otherwise (1.3.12, 1.2.7) |
$query_string | 同$args |
$realpath_root | an absolute pathname corresponding to the root or alias directive’s value for the current request, with all symbolic links resolved to real paths |
$remote_addr | 客户端的IP地址 |
$remote_port | 客户端连接端口 |
$remote_user | 变量等于用户的名字,基本身份验证模块使用 |
$request | full original request line |
$request_body | 该变量包含了请求体的主要信息。该变量与proxy_pass或者fastcgi_pass相关 |
$request_body_file | 客户端请求体的临时文件 |
$request_completion | 如果请求成功完成,那么显示“OK”。如果请求没有完成或者请求不是该请求系列的最后一部分,那么它的值为空。 |
$request_filename | 该变量等于当前请求文件的路径,有指令root或者alias和URI构成 |
$request_id | unique request identifier generated from 16 random bytes, in hexadecimal (1.11.0) |
$request_length | request length (including request line, header, and request body) (1.3.12, 1.2.7) |
$request_method | 该变量的值通常是GET或者POST。 |
$request_time | request processing time in seconds with a milliseconds resolution (1.3.9, 1.2.6); time elapsed since the first bytes were read from the client |
$request_uri | 该变量的值等于原始的URI请求,就是说从客户端收到的参数包括了原始请求的URI,该值是不可以被修改的,不包含主机名,例如“/foo/bar.php?arg=baz”。 |
$scheme | 功能:该变量表示HTTP scheme(例如HTTP,HTTPS),根据实际使用情况来决定,例如:rewrite ^ $scheme://example.com$uri redirect; |
$sent_http_ *name* |
arbitrary response header field; the last part of a variable name is the field name converted to lower case with dashes replaced by underscores |
$server_addr | 该变量的值等于服务器的地址。通常来说,在完成一次系统调用之后就会获取变量的值,为了避开系统钓鱼,那么必须在listen指令中使用bind参数。 |
$server_name | 该变量为server的名字。 |
$server_port | 该变量等于接收请求的端口 |
$server_protocol | 该变量的值为请求协议的值,通常是HTTP/1.0或者HTTP/1.1 |
$status | response status (1.3.2, 1.2.2) |
$tcpinfo_rtt, $tcpinfo_rttvar, $tcpinfo_snd_cwnd, $tcpinfo_rcv_space | information about the client TCP connection; available on systems that support the TCP_INFO socket option |
$time_iso8601 | local time in the ISO 8601 standard format (1.3.12, 1.2.7) |
$time_local | local time in the Common Log Format (1.3.12, 1.2.7) |
$uri | 该变量的值等于当前请求中的URI(没有参数,不包括$args)的值。它的值不同于request_uri,由浏览器客户端发送的request_uri的值。例如,可能会被内部重定向或者使用index。 另外需要注意:$uri不包含主机名,例如 “/foo/bar.html” 当前判断URL= $scheme://$server_name/$url |
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END