- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 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
log_format main '$remote_addr|$time_local]|$request|$request_time|$upstream_response_time|'
'$status|$body_bytes_sent|$http_referer|'
'$http_user_agent';
最佳答案
所以正如你所建议的那样,答案是:
当您以 GET 方式向您的服务器 ( nginx
+ upstream
) 发出请求时, $request_time
结果具有正常和可接受的值。发生这种情况是因为您的上游服务器没有参与其中,即使它参与了,它也能正常工作。
当您执行 POST 请求时,问题就开始了。根据 nginx doc 值 $request_time
当所有数据已发送且连接已关闭(所有上游和代理也已关闭)时,将计算变量(仅在日志记录时可用)。只有这样信息才会附加到日志中。
那么如何检查一切是否正确呢?
首先向您的服务器发出 GET 请求并查看日志文件。注意完成调用并将日志信息添加到文件中真正需要多少时间 - 它应该是真正的值(value)。
接下来向您的服务器发出 POST 请求并再次查看日志文件。在这里,您可能会看到日志根本没有出现或在很长一段时间后出现。
这是什么意思?检查您的 nginx conf 和您的上游 conf,因为某处可能是连接未关闭且悬而未决的地方。您的操作系统或上游服务器可能会在一段时间后更新这些连接,但毕竟它可能会导致一些问题,而不仅仅是奇怪 $request_time
值(value)。
关于logging - Windows 中的 Nginx $request_time 和 $upstream_response_time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14592773/
在 C# 中是否有类似于 ("$_SERVER['REQUEST_TIME']") 的 PHP 功能的类似函数? 最佳答案 以下属性返回当前 HTTP 请求的初始时间戳: HttpRequest.Re
我有一台装有 nginx 的服务器,我正在向客户端发送 API 响应。 我正在日志中记录我的$request_time。我需要知道 $request_time 是否记录了在我的服务器上处理并将请求发送
如 PHP documentation 中所述,$_SERVER 超全局数组包含两个元素,REQUEST_TIME 和 REQUEST_TIME_FLOAT,它们都包含请求开始的时间戳,在不同的精度水
本文实例详细讲述了php中time()与$_SERVER[REQUEST_TIME]用法的区别。分享给大家供大家参考。具体分析如下: 简单的说time()与$_SERVER["REQUE
服务器上发生了什么来设置请求时间?它是否考虑了配置服务器的时区? 我问是因为我需要知道,如果我有一个将时区设置为站点范围变量的站点,并且我将某些内容与 $_SERVER['REQUEST_TIME']
我在 Windows 上运行 Nginx 的访问日志中遇到了一些奇怪的问题。我在访问日志中包含了 $request_time 以及 $upstream_response_time(将 Django 作
我真的不知道怎么写标题,所以我尽力了。 我们在计算最终脚本(基于 Web)的执行时间时遇到了问题。 我们做一个简单的 if(time()-$_SERVER['REQUEST_TIME']>X){
这种方法是衡量脚本的可靠方法吗: $time = ($_SERVER['REQUEST_TIME_FLOAT'] - $_SERVER['REQUEST_TIME']); 或 $time = (mic
这两个时间函数哪个更好? 我的网站上有一个表单,成千上万的用户每微秒或更短时间提交一次表单,因此,我的服务器上同时有数千个请求。 所以我想使用在执行时不使用任何 sleep 的那个。另外,$_SERV
背景:我项目的目标是创建一个响应速度非常快的网站。只有很少的页面,其中很多只是 302 重定向。 在 Nginx 中,我正在记录 here $request_time。 在 PHP 中,我记录了请求开
我是一名优秀的程序员,十分优秀!