Эта проблема меня волновала ещё пару лет назад, но после довольно плотного «гугления» в те времена я так и не нашел решения.
Спустя время вопрос снова поднялся — ко мне на сервер недавно переехал довольно тяжелый проектик (кстати ещё будут посты по поводу оптимизации и снижения нагрузки на конкретном примере — так как грузит сервак не слабо — ни хостинги, ни виртуальные сервера данный проект не выдерживают) и нужно в реале в текущий момент времени отслеживать кто же именно и на сколько грузит сервер — ни top ни ps данную информацию не предоставляют — только процессы и загрузка, а вот конкретно по виртуальным хостам — облом.
Решение, как всегда, оказалось простым как и всё гениальное 🙂
MOD_STATUS
Модуль индейца mod_status позволяет снимать информацию о ВСЕХ процесса выполняемых в текущее время, аптайм сервера, процессорную нагрузку, информацию по трафику и т.п. САМОЕ ГЛАВНОЕ — виртуальных хост и запрос конкретного процесса httpd.
Именно то что нужно — КРАСОТА !
Настраивается элементарно, на раз-два-три:
Раз — подключаем сам модуль в httpd.conf
LoadModule status_module modules/mod_status.so
у меня уже был подключен (кстати этот факт навёл меня на мысль, что в апаче по умолчанию подключено много неиспользуемых модулей, сжирающих память — позже изучу этот момент поглубже и ознакомлю с результатами).
Два — Включаем сам модуль расширенней статистики
ExtendedStatus On
Три — «вешаем» на определенный урл (локацию server-status я немного переименовал ибо нехер по умолчанию оставлять)
<Location /server-status>
SetHandler server-status
# Order deny,allow
# Deny from all
Allow from [ваш IP]
</Location>
Можно по паролю — тогда так:
<Location /server-status>
SetHandler server-status
AuthType basic
AuthName «server-status»
AuthUserFile /var/www/.htpasswd
require valid-user
</Location>
Перезапускаем индейца service httpd restart
Всё — статистика доступна по адресу вашего сервера (или виртуального хоста куда зацепили локацию).
Лично у меня это http://IP сервера/server-status
4 комментария на «“Apache (httpd) — вычисление нагрузки по конкретным хостам (vhosts)”»
Интересный у вас способ.
да уж, действительно, элегантно и просто. И надо было столько времени голову ломать. Спасибо.
> а вот конкретно по виртуальным хостам — облом
может я неверное понял эту фразу, но в данном случае такой же облом, т.к. статистика общая для всего сервера, а не по виртуальным хостам.
только что проверил.
сам ищу как получить по виртуальным хостам.
виноват, смотрел только общие показатели сверху.
конечно же, внизу видно virtual hosts