为 Nginx 启用带请求消耗时间的 access log
2020-04-21 本文已影响0人
cuihaomaster
默认情况下,Nginx 的 access log 是不会显示请求时间(request time)的,这需要我们给它的配置文件自定义一下 log format。
编辑 /etc/nginx/nginx.conf,在 http 那块配置里面,加上如下代码:
log_format timed_combined '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" $request_time $upstream_response_time';
然后,在具体的 nginx server 配置里的 access_log 后面,加上一句 timed_combined 即可:
access_log /path/to/access.log timed_combined;
这样,在 access_log 的最后一行,就会出现 0.xxx (单位秒)的数据出现,代表 Nginx 从收到客户端请求、到发送完响应的整个时间,叫 request_time。
$upstream_response_time则表示在 Nginx 接受完 client 的请求后,再和 upstream server 请求的过程,这个指标才能真正反应 upstream server 的响应情况,虽然通常它的值会和 request_time 一样。