ngx_http_core_module常用变量

247 阅读1分钟

ngx_http_core_module 模块在处理请求时,会有大量的变量,这些变量可以通过访问日志来记录下来,也可以用于其它 nginx 模块。 

$arg_PARAMETER 

http请求中某个参数的值,如http://share.vhost.test.cn/weblogs/?log=service.log,可以用$arg_log取得service.log这个值 

$args 

http请求的完整参数,如在请求中http://share.vhost.test.cn/weblogs/?log=service.log&level=error,$args标识log=service.log&level=error 

$body_bytes_sent 

表示在向客户端发送的http响应中,包体部分的字节数 

$content_length 

表示客户端请求头部中的 Content-Length 字段

$content_type 

表示客户端请求头部中的 Content-Type 字段 

$cookie_COOKIE 

表示在客户端请求头部中的 cookie 字段 

$document_root 

表示当前请求所使用的 root 配置项的值 

$uri和$document_uri 

表示当前请求的uri,不带任何参数 $request_uri 表示客户端发来的原始请求URI,带完整参数。$uri和$document_uri不一定是用户的原始请求,在内部重定向后可能是重定向后的URI。而$request_uri永远不会变,始终是客户端的原始URI。 

$host 

表示客户端请求头部中的 Host 字段。如果 Host 字段不存在,则以实际处理的 server (虚拟主机)名称代替。如果 Host 字段中带有端口,如 IP:PORT,那么$host 是去掉端口的,它的值为 IP。$host 是全小写的。这些特性与 http_HEADER 中的 http_host 不同,http_host 只取出 Host 头部对应的值。 

$hostname 

表示 Nginx 所在机器的名称。 

$http_HEADER 

表示当前 HTTP 请求中相应头部的值。HEADER 名称全小写。例如,http请求中 Host 头部对应的值用 $http_host 表示。 

$sent_http_HEADER 

表示返回客户端的 HTTP 响应中相应头部的值。HEADER 名称全小写。例如,用 $sent_ http_content_type 表示响应中 Content-Type 头部对应的值。 

$is_args 

表示请求的URI中是否带参数,如果带参数,值为 ? ,如果不带参数,则为空字符串。 

$limit_rate 

表示当前连接的限速是多少,0表示不限速。 

$nginx_version 

表示当前nginx的版本号。 

$query_string 

请求URI中的参数,与$args相同。 

$remote_addr 

表示客户端的地址。 

$remote_port 

表示客户端连接使用的端口。 

$remote_user 

表示使用Auth Basic Module时定义的用户名。

$request_filename 

表示用户请求的URI经过root或者alias转换后的文件路径。 

$request_body 

表示HTTP请求中的包体,该参数只在proxy_pass或fastcgi_pass中有意义。 $request_body_file 

表示HTTP请求中包体存储的临时文件名。 

$request_completion 

当请求已经全部完成时,其值为 "ok"。若没有完成就要返回给客户端,则其值为空字符串。在断点续传等情况下使用HTTP range访问的并不是文件的最后一块,那么其值也是空字符串。 

$request_method 

表示HTTP请求的方法名,如GET、PUT、POST等。 

$scheme 

表示HTTP请求的scheme, 如在请求https://nginx.com中,表示https。 

$server_addr 

表示服务器地址 $server_name 表示服务器名称 

$server_port 

表示服务器端口 

$server_protocol 

表示服务器向客户端发送响应的协议,如 HTTP/1.1 或 HTTP/1.0