nginx的$request_time是什么,为什么它比php-fpm执行时间长得多


What is nginx's $request_time and why is it a lot more than php-fpm execution time?

背景:我的项目的目标是创建一个响应非常快的网站。只有很少的页面,其中许多只是 302 重定向。

Nginx 中,我在这里登录$request_time.

PHP 中,我记录了请求开始和退出前的microtime

php-fpm(PHP 5.3.27(和nginx(1.4.4(在同一台机器上运行,没有数据库(只是写入Beanstalkd队列(,没有复杂的nginx配置。

问题:PHP 执行时间和 Nginx 的 $request_time 之间存在巨大差异。$request_time 通常为 0.5 秒,但在某些小时内,平均更像是 3 秒。PHP 的执行时间总是在 0.008 秒到 0.02 秒之间(使用 PhalconPHP(。

:为什么会有这么大的差异?也许我不完全了解$request_time是什么,或者我的网络服务器有一些有问题的配置?我很乐意提供有关环境的更多信息。

$request_time是从发送的第一个字节到关闭所有内容并完成日志记录的时间。 如果你看看你的nginx日志和你正在记录的微时间,它们在开始时间方面有多接近? 对于request_time接近 3 秒,PHP 执行时间为 0.02 秒的那些,如果您推断请求开始时间并将其与 php 中的微时间进行比较,它们是否接近,或者 nginx 是否需要等待一秒或 2 秒(也许是为了释放 php 进程, 等等(。 记录$upstream_response_time以查看其比较情况可能会很有趣。