为 Nginx 启用带请求消耗时间的 access log

默认情况下,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 一样。

重启nginx生效

你可能感兴趣的:(为 Nginx 启用带请求消耗时间的 access log)