为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;

等待问题重现后即可排查

标签: nginx, upstream, log, access

添加新评论