使用 nginx 服务器时,一定会用到 nginx 内置变量,必须需要获取客户端请求的真实域名/IP
name | description |
---|---|
$arg_name | 请求中的的参数名,即? 后面的 arg_name=arg_value |
$args | 请求中的参数值 |
$query_string | 同 $args |
$binary_remote_addr | 客户端地址的二进制形式,固定长度为4个字节 |
$body_bytes_sent | 传输给客户端的字节数,响应头不计算在内;这个变量和Apache 的mod_log_config 模块中的%B 参数保持兼容 |
$bytes_sent | 传输给客户端的字节数 |
$connection | TCP 连接的序列号 |
$connection_requests | TCP 连接当前的请求数量 |
$content_length | Content-Length 请求头字段 |
$content_type | Content-Type 请求头字段 |
$cookie_name | cookie 名称 |
$document_root | 当前请求的文档根目录或别名 |
$document_uri | 同 $uri |
$host | 优先级: HTTP 请求行的主机名 > HOST 请求头字段 > 符合请求的服务器名 |
$hostname | 主机名 |
$http_name | 匹配任意请求头字段;变量名中的后半部分 name 可以替换成任意请求头字段,如在配置文件中需要获取 http 请求头:Accept-Language ,那么将- 替换为下划线,大写字母替换为小写,形如:$http_accept_language 即可。 |
$https | 如果开启了 SSL 安全模式,值为 on,否则为空字符串。 |
$is_args | 如果请求中有参数,值为? ,否则为空字符串。 |
$limit_rate | 用于设置响应的速度限制 |
$msec | 当前的 Unix 时间戳 |
$nginx_version | nginx 版本 |
$pid | 工作进程的PID |
$pipe | 如果请求来自管道通信,值为p ,否则为. |
$proxy_protocol_addr | 获取代理访问服务器的客户端地址,如果是直接访问,该值为空字符串 |
$realpath_root | 当前请求的文档根目录或别名的真实路径,会将所有符号连接转换为真实路径 |
$remote_addr | 客户端地址 |
$remote_port | 客户端端口 |
$remote_user | 用于HTTP 基础认证服务的用户名 |
$request | 代表客户端的请求地址 |
$request_body | 客户端的请求主体,此变量可在 location 中使用,将请求主体通过proxy_pass 、fastcgi_pass 、uwsgi_pass 和scgi_pass 传递给下一级的代理服务器。 |
$request_body_file | 将客户端请求主体保存在临时文件中。文件处理结束后,此文件需删除。如果需要之一开启此功能,需要设置client_body_in_file_only 。如果将次文件传递给后端的代理服务器,需要禁用request body ,即设置proxy_pass_request_body off 、fastcgi_pass_request_body off 、uwsgi_pass_request_body off 或scgi_pass_request_body off 。 |
$request_completion | 如果请求成功,值为OK ,如果请求未完成或者请求不是一个范围请求的最后一部分,则为空。 |
$request_filename | 当前连接请求的文件路径,由 root 或 alias 指令与URI 请求生成。 |
$request_length | 请求的长度 (包括请求的地址,http 请求头和请求主体) |
$request_method | HTTP请求方法 |
$request_time | 处理客户端请求使用的时间,从读取客户端的第一个字节开始计时。 |
$request_uri | 这个变量等于包含一些客户端请求参数的原始 URI,它无法修改,请查看 $uri 更改或重写 URI,不包含主机名 |
$scheme | 请求使用的 Web 协议,http 或https |
$sent_http_name | 可以设置任意http响应头字段,变量名中的后半部分name 可以替换成任意响应头字段,如需要设置响应头Content-length ,那么将- 替换为下划线,大写字母替换为小写 |
$server_addr | 服务器端地址,需要注意的是:为了避免访问linux系统内核,应将ip地址提前设置在配置文件中。 |
$server_name | 服务器名 |
$server_port | 服务器端口 |
$server_protocol | 服务器的HTTP版本,通常为HTTP/1.0 或HTTP/1.1 |
$status | HTTP响应代码 |
$tcpinfo_rtt $tcpinfo_rttvar $tcpinfo_snd_cwnd $tcpinfo_rcv_space | 客户端TCP连接的具体信息 |
$time_iso8601 | 服务器时间的 ISO 8610 格式 |
$time_local | 服务器时间 LOG Format 格式 |
$uri | 请求中的当前URI (不带请求参数,参数位于$args ),可以不同于浏览器传递的$request_uri 的值,它可以通过内部重定向,或者使用 index 指令进行修改,不包含主机名 |