【发布时间】:2013-10-01 18:47:37
【问题描述】:
无论是通过mydomain.com 还是mydomain.com:80(这是一些机器人/蜘蛛发出请求的方式)请求资源都没有关系:HTTP_HOST 始终显示为“mydomain.com”,PHP 没有办法了解请求是否包含:80 (2)。这让我相信,无论是否指定了端口,Apache 都会将完全相同的请求传递给 PHP(这是有道理的)。
问题:我在这台机器上安装了 NewRelic PHP 代理,它通过 PHP auto_prepend_file used to name the applications separately(1)、mydomain.com 和 mydomain.com:80 向 NewRelic 服务报告。这两个是同一个应用程序在NewRelic控制面板中以两个不同的名称显示,这是不可取的。由于应用程序名称是通过PHP设置的,mydomain.com:80怎么可能传递给NewRelic API时设置名称的代码甚至看不到请求是否明确定义:80? NewRelic 支持告诉我 我的代码 正在将 :80 传递给他们的 API,这是不可能的 (2)。 无论端口 (:80) 是否被明确请求,Apache 都会传递给 PHP 吗?
1) 如果我不使用此文件,服务器上的每个虚拟主机都将使用相同的通用“PHP 应用程序”名称进行报告
2) SERVER_PORT 将始终为 80,无论是否显式调用(当然,除非它是 https 或非标准端口请求,这不是这里讨论的内容)。换句话说,我不能使用 SERVER_PORT 来过滤明确定义了端口的请求,因为请求是否有明确定义的端口对 PHP 是不可见的。
Apache 2.2.15、mod_fcgid 2.3.7、PHP 5.3.3、Linux 2.6.32.60-40 x64、CentOS 6.4
【问题讨论】:
标签: php apache apache2 newrelic