nginx 的全局变量

前言

  • nginx1.15

全局变量

  • $scheme :请求的协议,比如httphttps
  • $https # 如果开启了 SSL 安全模式,值为 "on",否则为空字符串。
  • $host :请求的地址(IP 或域名),比如127.0.0.1localhostbaidu.comwww.baidu.com
  • $hostname 机器名使用 gethostname 系统调用的值
  • $time_local :访问时间及时区;
  • $status :HTTP 响应代码 < 记录请求状态,比如200404
  • $body_bytes_sent:记录发送给客户端文件主体内容大小;
  • $bytes_sent : 客户端发送的字节数
  • $connection # TCP 连接的序列号
  • $connection_requests # TCP 连接当前的请求数量
  • $limit_rate # 用于设置响应的速度限制,详见 limit_rate。
  • tcpinfo_rtt, tcpinfo_rttvar, tcpinfo_snd_cwnd, tcpinfo_rcv_space # 客户端 TCP 连接的具体信息
  • $nginx_version # nginx 版本
  • $pid # 工作进程的 PID
  • $pipe # 如果请求来自管道通信,值为 "p",否则为 "." (1.3.12, 1.2.7)
  • $uri 请求中的当前 URI(不带请求参数,参数位于 args),不同于浏览器传递的 args),不同于浏览器传递的 args),不同于浏览器传递的 request_uri 的值,它可以通过内部重定向,或者使用 index 指令进行修改。不包括协议和主机名,例如 / foo/bar.html

request 参数

  • $args 变量中存放了请求 URL 中的请求指令。比如
    http:/www.xxxx.com/index/index?argl=valuel&arg2=value2 中的 "argl=valuel&arg2=value2"
  • $query_string 与变量$args含义相同
  • $arg_PARAMETER GET 请求中变量名 PARAMETER 参数的值。
  • $is_args # 如果请求中有参数,值为 "?",否则为空字符串。

$remote_xxx

  • $remote_addr :客户端的 ip 地址;
  • $remote_user :记录客户端用户的名称;
  • $remote_port 变量中存放了客户端与服务器建立连接的端口号

$server_xxx

  • $server_protocol 变量中存放了客户端请求协议的版本,比如 "HTTP1.0"、"HTTP/1.1" 等
  • $server_addr 变量中存放了服务器的地址
  • $server_name 变量中存放了客户端请求到达的服务器的名称
  • $server_port :请求的端口,比如804438080

$upstream_xxx

  • $upstream_status:upstream 状态
  • $upstream_addr :后台 upstream 的地址,即真正提供服务的主机地址
  • $upstream_response_time:请求过程中,upstream 响应时间

$request_xxx

  • $request :请求的 URL 与 HTTP 协议,比如GET /index HTTP/1.0
  • $request_body :POST 数据
  • $request_body_file 变量中存放了发给后端服务器的本地文件资源的名称
  • $request_method 变量中存放了客户端的请求方式,如 ""GET"、"POST 等
  • $request_filename 变量中存放了当前请求的资源文件的路径名
  • $request_uri 变量中存放了当前请求的 URI,并且带请求指令
  • $request_length:客户端请求的长度
  • $request_time : 整个请求的总时间
  • $request_completion 如果请求成功,设为 "OK";如果请求未完成或者不是一系列请求中最后一部分则设为空。

$content_xxx

  • $content_length 变量中存放了请求头中的 Content-length 字段
  • $content_type 变量中存放了请求头中的 Content-type 字段

$document_xxx

  • $document_root 变量中存放了针对当前请求的根路径
  • $realpath_root # 当前请求的文档根目录或别名的真实路径,会将所有符号连接转换为真实路径。
  • document_uri (同 uri) 变量中存放了请求中的当前 URI,并且不包括请求指令,比如 http://www.xxxx.com/index/index?argl-value1\&arg2-value2 中的 "/index/index

$http_NAME:HTTP 请求头中的内容

  • $http_NAME :匹配任意请求头字段,NAME 可以替换成任意请求头字段。比如$http_accept_language获取 http 请求头Accept-Language
  • $http_host :请求的地址(IP 或域名),如果http协议头包含host,则对应http协议头host,否则同$host
  • $http_referer:用来记录从哪个页面链接访问过来的,对应http协议头referer
  • $http_user_agent:记录客户端浏览器的相关信息,对应http协议头user-agent(规律:横线变成下划线了);
  • $http_x_forwarded_for : 对应http协议头x-forwarded-for,含义同$remote_addr,用于反向代理时告知应用客户端的实际 IP;
  • $http_x_forwarded_proto : 对应http协议头x-forwarded-proto,含义同$scheme,用于反向代理时告知应用客户端的实际请求协议;
  • $http_cookie : 全部的 cookie;

$sent_http_NAME:HTTP 响应头中的内容

  • $sent_http_NAME :http 响应头字段,NAME 可以替换成任意响应头字段。如$sent_http_content_length获取响应头Content-length
  • $sent_http_cache_control
  • $sent_http_connection
  • $sent_http_content_type
  • $sent_http_keep_alive
  • $sent_http_last_modified
  • $sent_http_location
  • $sent_http_transfer_encoding

$cookie_NAME

  • $cookie_NAME :客户端请求 Header 头中的 cookie 变量,NAME 可以替换成任意 cookie 名称。
  • $cookie_jsessionid获取 cookie 中的jsessionid

参考

http://nginx.org/en/docs/http/ngx_http_log_module.html#log_format

https://www.cnblogs.com/luoyan01/p/9734149.html

https://blog.csdn.net/zhf_sy/article/details/126807321

相关推荐
wanhengidc15 分钟前
云手机 开发测试中的便捷工具
运维·服务器·科技·智能手机·云计算
HalvmånEver27 分钟前
Linux:基础IO(终)
linux·运维·c++·学习·缓冲区·libc
大江东第一深情1 小时前
Origin 2024 进行语言切换后仍然显示为英文
运维·前端
CSDN官方博客1 小时前
CSDN社区镜像创作活动
大数据·运维·人工智能
石小千1 小时前
Ubuntu24.04 安装Docker
运维·docker·容器
zhuzewennamoamtf1 小时前
Linux设备树理解和应用
linux·运维·服务器
雨大王5122 小时前
汽车厂内物流如何通过自动化实现降本增效?
运维·自动化
Qzkj6662 小时前
医疗和教育行业自动化、精准匹配、易掌握的数据分类分级最佳实践与案例
大数据·运维·自动化
我科绝伦(Huanhuan Zhou)2 小时前
Linux 环境下 SQL Server 自动收缩日志作业创建脚本(Shell 版)
linux·运维·数据库·sql server
徐徐图之!2 小时前
五、【阶段一运维基础 之 干货!!!】安装 Vmware 和 CentOS
linux·运维·centos