Назад | Перейти на главную страницу

Как я могу отслеживать, какая страница запрашивается с помощью нескольких VirtualHost в Apache?

У меня есть веб-сервер Apache 1.3 с несколькими VirtualHost записи, обслуживающие несколько независимых веб-сайтов.

В определенные моменты Apache получает огромное количество запросов, из-за чего сервер достигает высокой рабочей нагрузки. Я хотел бы знать, какие из всех этих сайтов получают запросы.

Как я могу это сделать? Я читал о Apache's mod_info модуль, но я не знаю, есть ли риски для безопасности.

Спасибо!

Я бы порекомендовал изменить ваш LogFormat включать %v, какой ServerName из <VirtualHost> обслуживая запрос.

Оттуда анализ журналов позволит вам определить, куда поступает большинство запросов.

Если у вас есть один файл журнала для каждого домена, например /var/log/apache/domain.tld/access_log

Затем вы можете использовать watch, sort и du, чтобы узнать, какой файл изменяется наиболее быстро (поскольку apache всегда добавляет что-то в файлы журнала)

# watch "du -k /var/log/apache/*/access_log |sort -n"

Или, если у вас много файлов, и вы заинтересованы только в том, чтобы хост менялся больше всего

# watch "du -k /var/log/apache/*/access_log |sort -n |tail -30"

Вы можете зарегистрировать запрошенное имя хоста с помощью:

%{Host}i

Вы можете зарегистрировать имя сервера VirtualHost с помощью:

%v