在Debian系统中,Nginx的访问日志和错误日志分别记录了请求的处理情况和错误信息。要查看响应时间,你需要关注访问日志。默认情况下,访问日志文件位于/var/log/nginx/access.log
。
访问日志的默认格式如下:
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
其中,$time_local
变量表示请求的时间,$status
变量表示响应状态码,$body_bytes_sent
变量表示发送给客户端的字节数。
要查看响应时间,你可以使用awk
命令来解析访问日志。例如,以下命令将输出每个请求的时间、状态码和响应时间(以毫秒为单位):
awk '{ print $4, $9, $10 }' /var/log/nginx/access.log | awk -F: '{ print $1 ":" $2 ":" $3 " " $4, $5, $6 }' | awk '{ cmd="date -d \""$1" "$2" "$3" "$4"\" +%s%N"; cmd |= "date -d \""$5" "$6" "$7"\" +%s%N"; cmd |= "date -d \""$8" "$9" "$10"\" +%s%N"; cmd |= "echo $11"; (cmd |& getline response_time) > 0; close(cmd); response_time_ms = response_time / 1000000; print $0, response_time_ms "ms" }' | sort -k4,4
这个命令首先解析访问日志,然后使用date
命令将时间转换为纳秒级的时间戳,接着计算响应时间(以毫秒为单位),最后按请求时间排序并输出结果。
注意:这个命令可能需要根据你的Nginx配置和日志格式进行调整。如果你的日志格式与默认格式不同,请相应地修改awk
命令中的字段引用。