У меня есть веб-сервер 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