Неважно, запрашивался ли ресурс через mydomain.com
ИЛИ mydomain.com:80
(так делают запросы некоторые боты/пауки): HTTP_HOST
всегда отображается как «mydomain.com», и PHP не может узнать, включал ли запрос :80 (2). Это наводит меня на мысль, что Apache передает PHP один и тот же запрос независимо от того, указан порт или нет (и это имеет смысл).
Проблема: на этом компьютере установлен PHP-агент NewRelic, и он сообщает службе NewRelic через используемый файл PHP auto_prepend_file называть приложения отдельно(1), как mydomain.com
, так и mydomain.com:80
. Эти два одно и то же приложение отображается под двумя разными именами в панели управления NewRelic, что нежелательно. Поскольку имя приложения задается через PHP, как mydomain.com:80
может быть передано в NewRelic API, когда код установка имени даже не может видеть, определяет ли запрос явно :80? Служба поддержки NewRelic сообщает мне, что мой код передает :80 в их API, а это просто невозможно(2). Передает ли Apache PHP независимо от того, был ли явно запрошен порт (:80) или нет?
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