![如何在 Nginx 中记录请求的开始时间](https://linux22.com/image/803677/%E5%A6%82%E4%BD%95%E5%9C%A8%20Nginx%20%E4%B8%AD%E8%AE%B0%E5%BD%95%E8%AF%B7%E6%B1%82%E7%9A%84%E5%BC%80%E5%A7%8B%E6%97%B6%E9%97%B4.png)
正如所述这个答案,Nginx 访问日志中的 $time_local 变量表示时间结束请求(或接近)。
那么,有没有什么方法可以记录开始时间Nginx 访问日志中某个请求的具体信息?
我在 Google 上搜索过,但就是找不到任何实现这一点的参考资料。拜托!这对于 Web 服务器来说不是一个非常简单的功能吗?不要告诉我从 $time_local 中减去 $request_time...
答案1
我知道这是一个老问题,但我认为它值得更新,因为 nginx>1.2.5
(截至 2017 年 7 月 nginx 稳定1.13
)这现在很简单
在日志中使用
start_time="$msec"
或者添加标题:
add_header X-Request-Start $msec
或代理
proxy_set_header X-Request-Start $msec
答案2
嗯,有一个针对 nginx 的补丁(https://gist.github.com/rkbodenner/318681#comment-610856) 将请求开始时间显示为变量。
我认为这对你的情况可能有用。
答案3
您可以将$msec
和写入$request_time
日志并使用$msec
-$request_time
作为解析的开始时间。