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
原文地址:http://blog.51cto.com/13447608/2287395
时间: 2024-10-07 09:24:25