Nginx的变量和Nginx的日志管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx的变量和Nginx的日志管理相关的知识,希望对你有一定的参考价值。

nginx的变量:

  $request_length       请求长度(包括请求行,标题和请求正文)
  $request_method       请求的动作(get或者post)
  $request_time         请求时间(以毫秒为单位的请求处理时间(1.3.9,1.2.6); 从客户端读取第一个字节后经过的时间)
  $request_url          完整的原始请求URL(带参数)  
  $scheme               返回用的协议,是http还是https
  $remote_addr          客户端的地址
  $remote_port          client port
  $remote_user          基本认证的身份
  $server_addr          服务端的地址
  $server_port          server port
  $server_protocol      使用的http的版本“HTTP/1.0”, “HTTP/1.1”, or “HTTP/2.0”
  $status               回应状态
  $body_bytes_sent      给你主体发送的字节
  $http_refrere         请求的上个页面来至于哪里
  $http_x_forwarded_for 代理服务器的IP地址
  $http_user_agent      浏览器的型号
  $uri                  除去域名和协议的URL

  ================upstream 模块所支持的变量==============
  $upstream_addr            处理请求的上游服务器的地址
  $upstream_cache_status    表示是否命中缓存
  $upstream_status          上游服务器的响应状态码
  $upstream_response_time   上游服务器的响应时间,精度到毫秒
  $upstream_http_$HEADER    HTTP的头部,如upstream_http_host

Nginx的日志管理

在配置文件里面找到根nginx日志相关的配置文件
    #log_format  main  ‘$remote_addr - $remote_user [$time_local] $request ‘
    #                  ‘"$status" $body_bytes_sent "$http_referer" ‘
    #                  ‘"$http_user_agent" "$http_x_forwarded_for"‘;
    #access_log  logs/access.log  main;
作用域: http 服务器
指令log_format描述了日志条目的格式。除了格式中的一般变量之外,还可以使用仅在记录到日志中时存在的变量:
·$ body_bytes_sent,发送到客户端的字节数减去响应头,变量与模块Apache的mod_log_config的参数%B兼容
(在版本0.3.10之前称为$ apache_bytes_sent)
·$ bytes_sent,传输到客户端的字节数
·$ connection,连接数
·$ msec,日志条目时精度为微秒的时间
·$ pipe,如果请求是流水线操作则为“p”
·$ request_length,请求正文的长度
·$ request_time,在几秒钟内处理请求的时间
·$ status,回答状态
·$ time_local,将本地时间转换为通用日志格式。
传输到客户端的标头从前缀“sent_http_”开始,例如$ sent_http_content_range。

Nginx的日志轮询。(在这个Nginx里面 不需要,默认有日志轮询)

要求每个server标签都有自己的日志文件,日志文件只保留7天,每个文件只保留一天的日志信息

#!/bin/bash
cd /usr/local/nginx/logs
DATE=`date +%Y%m%d`
for i in `ls *.log`
do
    echo $i |sed -r "s#(.*).log#mv $i 1-$DATE.log#g" | bash
    touch $i    
done
kill -USR1 `cat nginx.pid` && action "logs 轮询。sucess" /bin/true
echo "删除了这些日志"
find ./ -name "*.log" -type f -mtime +7 
find ./ -name "*.log" -type f -mtime +7 |xargs rm -f 

写到定时任务中
59 23 * * * /opt/scripts/log_lun.sh >>/var/log/Nginx_lunxu.logs

以上是关于Nginx的变量和Nginx的日志管理的主要内容,如果未能解决你的问题,请参考以下文章

nginx之旅(第二篇):nginx日志管理nginx防盗链nginx虚拟主机

nginx错误界面优化和日志管理

Nginx——nginx日志类型(Centos7通过yum方式安装)

Shell脚本切割日志

Nginx教程 Nginx日志管理

自定义nginx访问日志和内置变量使用