女主宣言
nginx日志分为access_log和error_log,可以用于业务的访问统计、服务排障等。我们可以自定义设置log_format,来记录关注的各项指标。本文主要讲述了一次nginx日志中$request_time时间异常问题的排查过程,希望可以对遇到类似问题的同学有所帮助。
PS:丰富的一线技术、多元化的表现形式,尽在“360云计算”,点关注哦!
1
问题描述
业务反馈自己的服务实际响应速度很快,nginx作为反向代理,在它的access_log中看到的$request_time却在5s以上,而$upstream_response_time不到1s。这之间的时间差是从何而来?
2
排查过程
业务的请求路径
client -> LVS -> nginx -> upstream
客户端访问业务域名,解析到LVS的VIP后,转发给后端的nginx反向代理,再由nginx转发给后端真实的服务器。
在LVS上抓包查看实际请求时间
下图只截取了整个流程中连接断开的部分数据包,nginx发出的是端口为80的数据包,客户端请求是端口为23883的数据包。从图中可以看出,nginx的80端口在发送完所有数据后,立即发