我在Windows上运行Nginx的访问日志中遇到了一些奇怪的现象.我在我的访问日志中包含$ request_time以及$ upstream_response_time(将Django作为fcgi上游运行).我的理解是日志应该以毫秒为单位表示请求时间,但它的输出如下所示:
ip|date|request_time|upstream_response_time
xx.xx.xx.xxx|[29/Jan/2013:15:29:57 -0600]|605590388736.19374237|0.141
xx.xx.xx.xxx|[29/Jan/2013:15:30:39 -0600]|670014898176.19374237|0.156
Run Code Online (Sandbox Code Playgroud)
任何想法是什么巨大的数字!?
这是完整的日志格式(我在上面的示例中删除了几个列)
log_format main '$remote_addr|$time_local]|$request|$request_time|$upstream_response_time|'
'$status|$body_bytes_sent|$http_referer|'
'$http_user_agent';
Run Code Online (Sandbox Code Playgroud)
使用管道分隔符.
emk*_*a86 10
所以你在这里建议的答案是:
当您向服务器(nginx+ upstream)发出GET 请求时,会得到$request_time正常且可接受的值.之所以会发生这种情况,是因为您的上游服务器不参与其中,即使这样做也能使其正常运行.
在执行POST请求时问题就开始了.根据nginx doc $request_time变量的值(仅在日志记录时可用)将在所有数据已发送且连接已关闭时计算(由所有上游和代理也).然后只有信息附加到日志.
那么如何检查一切是否正确?首先对服务器执行GET请求并查看日志文件.注意完成调用并将日志信息添加到文件中需要多长时间 - 它应该是真正的价值.接下来对服务器发出POST请求并再次查看日志文件.在这里,您可能会看到日志根本没有出现或经过很长时间.
这是什么意思?检查你的nginx conf和你的上游conf,因为某个地方可能是一个没有关闭连接的地方,只是挂在空中.这些连接可以在您的操作系统或上游服务器之后更新,但毕竟它可能会导致一些问题,而不仅仅是奇怪的$request_time值.
| 归档时间: |
|
| 查看次数: |
20888 次 |
| 最近记录: |