为nginx日志加入上游响应时间
生产环境发现一个请求报了超时.查询应用日志在收到请求后1秒内就做出了响应;查看nginx访问日志发现那笔请求状态为499,经查是因为请求端等待超时主动掐断连接.由于之前nginx只记录了默认的访问日志格式,所以无法排查究竟是是否为上游超时.为了找到问题原因遂需要记录一下上游的响应时间:
配置如下:
1.定义新的日志格式(在默认格式之后加上请求/响应时间,管道)
log_format access '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" '
'$request_time $upstream_response_time $pipe';
2.重新配置日志格式
access_log logs/access.log access;
等待问题重现后即可排查