2015-03-25 88 views
1

我试图通过在nginx中记录请求URL和$request_time来找到PHP应用程序中的瓶颈。不幸的是,$request_time包括网络滞后,我不能优化。我希望日志包含纯页面生成时间的另一个字段,因此我可以将它与$request_time进行比较。如何将数据从php-fpm传递到nginx访问日志?

我假设连接速度慢nginx快速获取php-fpm输出,然后等待客户端下载它。我可以在PHP中测量生成时间,但是如何将它放入nginx访问日志?

+0

将php-fpm日志格式更改为您想要的格式,并将其指向nginx日志文件,就是这样。 – 2015-03-25 21:45:15

+0

一旦PHP响应,内容将被返回给客户端。如果您在与PHP相同的机器上运行Nginx,则不存在网络延迟。即使你使用TCP代替unix套接字,它也只是稍有不同。它是一个繁忙的服务器吗?平均有多少请求/秒? – 2015-04-01 23:41:08

回答

0

把你想要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'; 

请注意,该值也会通过标题发送到客户端,因此额外的标题中不应包含任何敏感内容。

+0

这是行不通的 – BigTon 2016-04-14 18:07:21