nginx 日志分析及性能排查
如果需要得到请求处理的时间,需要在nginx log 里面加上$request_time,下面是我的log_format nginx.conf log_format main ' $remote_addr - $remote_user [ $time_local ] " $request " ' ' $status $body_bytes_sent $request_body " $http_referer " ' '" $http_user_agent " " $http_x_forwarded_for " " $request_time "' ; 修改之后重启nginx,查看nginx log的时候,就能看到nginx处理请求所花的时间了,这个时间基本就是后端所花的时间,所以可以根据这个字段来得到响应慢的请求 以下是就是我用到的一些命令了 获取pv数 $ cat /usr/ local /nginx/logs/access.log | wc -l 获取ip数 $ cat /usr/ local /nginx/logs/access.log | awk '{print $1}' | sort -k1 -r | uniq | wc -l 获取最耗时的请求时间、url、耗时,前10名, 可以修改后面的数字获取更多,不加则获取全部 $ cat /usr/ local /class/logs/access.log | awk '{print $4,$7,$NF}' | awk -F '"' '{print $1,$2,$3}' | sort -k3 -rn | head -10 获取某一时刻的请求数量,可以把秒去掉得到分钟的数据,把分钟去掉得到小时的数据,以此类推 $ cat /usr/ local /class/logs/access.log | gre...