我试图通过在nginx中记录请求URL和$request_time
来找到PHP应用程序中的瓶颈。不幸的是,$request_time
包括网络滞后,我不能优化。我希望日志包含纯页面生成时间的另一个字段,因此我可以将它与$request_time
进行比较。如何将数据从php-fpm传递到nginx访问日志?
我假设连接速度慢nginx快速获取php-fpm输出,然后等待客户端下载它。我可以在PHP中测量生成时间,但是如何将它放入nginx访问日志?
我试图通过在nginx中记录请求URL和$request_time
来找到PHP应用程序中的瓶颈。不幸的是,$request_time
包括网络滞后,我不能优化。我希望日志包含纯页面生成时间的另一个字段,因此我可以将它与$request_time
进行比较。如何将数据从php-fpm传递到nginx访问日志?
我假设连接速度慢nginx快速获取php-fpm输出,然后等待客户端下载它。我可以在PHP中测量生成时间,但是如何将它放入nginx访问日志?
把你想要nginx的数据通过PHP登录到头文件。
header('RequestTime', 1234);
请求nginx将头文件的值记录到您的nginx配置文件中。
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" $http_requesttime';
请注意,该值也会通过标题发送到客户端,因此额外的标题中不应包含任何敏感内容。
这是行不通的 – BigTon 2016-04-14 18:07:21
将php-fpm日志格式更改为您想要的格式,并将其指向nginx日志文件,就是这样。 – 2015-03-25 21:45:15
一旦PHP响应,内容将被返回给客户端。如果您在与PHP相同的机器上运行Nginx,则不存在网络延迟。即使你使用TCP代替unix套接字,它也只是稍有不同。它是一个繁忙的服务器吗?平均有多少请求/秒? – 2015-04-01 23:41:08