一.HTTP请求相关参数
1.arg_参数名:URL中某个具体参数的值
2.query_string:预args变量完全相同
3.args:全部URL参数
4.is_args:如果请求URL中有参数则返回?否则返回空
5.content_length:HTTP请求中标识包体长度的Content-Length头部的值
6.content_type:标识请求包体类型的Content_Type头部的值
7.uri:请求的URL(不同于URL,不包括?后的参数)
8.document_rui:与uri完全相同
9.request_uri:请求的URL(包括URI以及完整的参数)
10.scheme:协议名,例如HTTP或者HTTPS
11.request_method:请求方法,例如GET或者POST
12.request_length:所有请求内容的大小,包括请求行,头部,包体等
13.remote_user:由HTTP Basic Authentication协议传入的用户名
14.request_body_file:临时存放请求包体的文件(如果包体非常小则不会存文件,client_body_in_file_only强制所有包体存入文件,且可决定时候删除)
15.request_body:请求中的包体,这个变量当且仅当使用反向代理,且设定用内存暂存包体时才有效
16.request:原始的url请求,含有方法与协议版本
17.host:先从请求行中获取,如果含有Host头部,则用其值替换掉请求行中的主机名,如果前两者都取不到,这是用匹配上的server_name
18.http_头部名字:返回一个具体请求头部的值(特殊:http_host,http_user_agent,http_referer,http_via,http_x_forwarded_for,http_cookie会做一些微小的处理)
二.TCP连接相关变量
1.binary_remote_addr :客户端地址的整型格式,对于IPv4是4字节,对于IPv6是16字节
2.connection:递增的连接序号
3.connection_requests:当前连接上执行过的请求数,对keepalive连接有意义
4.remote_addr:客户端地址
5.remote_port:客户端端口
6.proxy_protocol_addr:若使用了proxy_protocol协议,则返回协议中的地址,否则返回空
7.proxy_protocol_port:若使用了proxy_protocol协议,则返回协议中的端口,否则返回空
8.server_addr:服务器端地址
9.server_port:服务器端端口
10.TCP_INFO:tcp内核参数,包括$tcpinfo_rtt,$tcpinfo_rttvar,$tcpinfo_snd_cwnd,$tcpinfo_rcv_space
11.server_protocol:服务器端协议,例如HTTP/1.1
三.nginx在处理请求中产生的变量
1.request_time:请求处理到现在的耗时,单位为秒,精确到毫秒
2.Server_name:匹配上请求的Server_name值
3.https:如果开启了TLS/SSL,则返回on,否则返回空
4.request_completion:若请求处理完则返回OK,否则返回空
5.request_id:以16进制输出的请求标识id,该id共含有16个直接,是随机产生的
6.request_filename:待访问文件的完整路径
7.document_root:有URI和root/alias规则生成的文件夹路径
8.realpath_root:将document_root中的软链接等换成真实的路径
9.limit_rate:返回客户端响应时的速度上限,单位为每秒字节数。可以通过set指令修改对请求产生效果
四.发送HTTP响应时相关的变量
1.body_bytes_sent:响应中body包体的长度
2.bytes_sent:全部http响应的长度
3.status:http响应中的返回码
4.sent_trailer_名字:把响应结尾内容里值返回
5.sent_http_头部名字:响应中某个具体头部的值
特殊处理:sent_http_content_type,sent_http_content_length,sent_http_location,sent_http_last_modified,sent_http_connection,sent_http_keepalive,sent_http_transfer_encoding,sent_http_cache_control,sent_http_link
五.nginx系统变量
1.time_local:以本地时间标准输出的当前时间,例如14/Nov/2018:16:11:00 +0800
2.time_iso8601:使用ISO 8601标准输出的当前时间,例如2018-11-14 T 16:11:00 +08:00
3.nginx_version:nginx版本号
4.pid:所属worker进程的进程id
5.pipe:使用了管道则返回p,否则返回.
6.hostname:所在服务器的主机名,与hostname命令输出一致
7.msec:1970年1月1日到现在的时间,单位为秒,小数点后精确到毫秒