删除web日志文件后需要重载配置才会重新生成web日志文件

一、内部变量和参数介绍

Nginx默认日志路径/usr/local/nginx/logs/,其中包含访问日志accesss.log和错误记录日志error. log,查看Nginx请访问日志cat /usr/local/nginx/logs/access. log。
Nginx访问日志打印的格式可以自定义,例如 Nginx日志打印格式配置, log_format用来设置日志格式,name为模块名,type为日志类型,可以配置多个日志模块,分别供不同的虚拟主机日志记录所调用。

$remote_addr:  记录客户端IP地址
$server_name:  虚拟主机名称
$http_x_forward_for : Http请求端真实的IP
$remote_user:  记录客户端用户名称
$request:  记录请求的URL和HTTP协议
$status:  记录返回HTTP请求的状态
$uptream_status: upstream的状态
$body_bytes_sent: 发送给客户端的字节数,不包括响应头的大小
$connection_requests:  当前通过一个连接获得的请求数量
$http_referer:  记录从哪个页面链接访问过来的
$http_user_agent: 记录客户端浏览器相关信息
$msec;日志写入时间
$request_length请求的长度,包括请求行、请求头和请求正文
$request_time:  请求处理时间,单位为s,精度为ms, Nginx接受用户请求的第一个字节到发送完响应数据的时间,包括接收请求数据时间、程序响应时间,输出、响应数据时间
$upstream_response_time:应用程序响应时间, Nginx向后端服务建立连接开始到接受完数据然后关闭连接为止的总时间

二、对日志的分析

通过 Nginx日志,可以简单分析Web网站的运行状态、数据报表,IP,UV( uniquePV(page view)访问量等需求。

(1) 统计Nginx服务器独立IP数,测试可行指令如下:

awk '{print $1}' access.log | sort -r | uniq -c | wc -l

(2)统计 Nginx服务器总PV量,测试可行指令如下:

awk '{print $7}' access.log | wc -l

(3)Nginx服务器UV统计,测试可行指令如下:

awk '{print $11}' access.log | sort -r | uniq -c | wc -l

(4)分析 Nginx访问日志截至目前为止访问量前n列的IP,测试可行指令如下:

cat cloudduo.log | cut -d ' ' -f 1 | sort | uniq -c | sort -nr | awk '{print $0}' | head -n 10

(5)分析 Nginx访问日志早上8点至中午12点的总请求量,指令如下:

awk '/08:00/,/12:00/' test.log | wc -l

(6)分析 Nginx访问日志总的独立IP数,测试可行指令如下:

awk '{print $1}' access.log | sort | uniq -c | wc -l

(7)分析 Nginx访问日志状态码404、502、503、500、499等错误信息页面,打印错误出现次数大于20的IP地址,指令如下:

awk ' {if ($9~/404|499|500|502|403/) print $1, $9)' , access.log | sort | uniq -c | sort -nr | awk '{if($1>20) print $2}'

(8)分析 Nginx访问日志访问最多的页面,前20个页面,测试可行指令如下:

awk '{print $7}' access.log |sort |uniq -c|sort -nr|head -20

(9)分析 Nginx访问日志请求处理时间大于5s的URL,并打印出时间、URL、访客IP,测试可行指令如下:

awk  '{if ($NF> 5)  print  $NF, $7, $1}'  access.log | sort -nr | more