У нас есть один сервер, на котором размещено много разных доменов. Поскольку этот сервер отключен, мы хотим знать, существуют ли еще домены, указывающие на этот сервер. Я хотел бы, чтобы журналы Apache сообщали об этих доменных именах.

Наши журналы Apache показывают следующие данные:

163.172.66.133 - - [16/Dec/2016:11:37:40 +0100] "GET /en /page /test HTTP /1.1" 301 - "-" Mozilla /5.0 (совместимо; AhrefsBot /5.1; +http)://ahrefs.com/robot/)"

Это должно быть с полным доменным именем запрашиваемой страницы.

163.172.66.133 - - [16/Dec/2016:11:37:40 +0100] "GET https://www.domainname.com/ru /page /test HTTP /1.1" 301 - "-" "Mozilla /5.0 (совместимо; AhrefsBot /5.1; +http://ahrefs.com/robot/)"

Я использую следующий LogFormat:

LogFormat "%h %l %u %t \"%m http://%v:%p%U\" %>s %b" common

Иногда я вижу полное доменное имя, чаще всего нет.

Как я могу отображать доменные имена постоянно?

1 ответ1

1

Если вы посмотрите официальную документацию по формату журнала, то увидите, что флаг %v или %V может быть тем, что вас интересует, поскольку он даст вам сконфигурированное имя Canonical ServerName. Так что это будет ServerName, настроенный в блоке, который, наконец, ответил на запрос.

Поскольку предоставленная вами строка LogFormat уже содержит этот идентификатор, вероятно, существует более одной конфигурации, которая задает формат журнала, и строки журнала, которые не содержат хост, основаны на этом другом формате. Ваш формат должен всегда давать вам строки, которые отформатированы как ваш второй пример.

Проблема по-прежнему может быть связана с тем, что вы настроили подстановочные домены, и вы не сможете увидеть, какое полное FQDN было запросом. Вопрос, озаглавленный Использование% v в определении Apache LogFormat, соответствует ServerName, а не конкретному запрошенному vhost , предположил бы, что вы можете использовать идентификатор %{Host} чтобы получить "перспективу клиента", то есть часть узла заголовка запроса.

Чтобы найти все файлы конфигурации, содержащие строку LogFormat вы можете взглянуть на другой вопрос, подобный следующему: Как найти все файлы, содержащие определенный текст в Linux?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .