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

相关推荐
€☞扫地僧☜€42 分钟前
docker 拉取MySQL8.0镜像以及安装
运维·数据库·docker·容器
其乐无涯1 小时前
服务器技术(一)--Linux基础入门
linux·运维·服务器
Diamond技术流1 小时前
从0开始学习Linux——网络配置
linux·运维·网络·学习·安全·centos
写bug的小屁孩1 小时前
前后端交互接口(三)
运维·服务器·数据库·windows·用户界面·qt6.3
斑布斑布1 小时前
【linux学习2】linux基本命令行操作总结
linux·运维·服务器·学习
紅色彼岸花1 小时前
第六章:DNS域名解析服务器
运维·服务器
✿ ༺ ོIT技术༻1 小时前
Linux:认识文件系统
linux·运维·服务器
会掉头发2 小时前
Linux进程通信之共享内存
linux·运维·共享内存·进程通信
我言秋日胜春朝★2 小时前
【Linux】冯诺依曼体系、再谈操作系统
linux·运维·服务器
饮啦冰美式2 小时前
22.04Ubuntu---ROS2使用rclcpp编写节点
linux·运维·ubuntu