Если вы хотите иметь возможность посмотреть на то, чем Apache занят, что с него качают, какие запросы используют и много другое, то вас должно обрадовать существование модуля mod_status. Скорее всего, этот модуль уже включен в ваш Apache, если же нет, то его надо будет установить.
Этот модуль даст информацию о:
- количестве процессов, обрабатывающих запросы;
- количестве процессов в состоянии ожидания;
- статусе каждого процесса, числе обработанных запросов и переданных байт;
- общем числе запросов и переданных байт;
- времяени, когда сервер был запущен/перезапущен и сколько он уже работает (uptime);
- среднем числе запросов/сек, байт/сек и байт/запрос;
- текущем использовании CPU каждым процессом отдельно и Apache в целом (в процентах);
- текущих посетителях и их запросах.
Если у вас есть этот модуль, то осталось дело за малым: Надо добавить в httpd.conf или другой файл настроек апача следующие строки:
ExtendedStatus On
<Location /server-status>
SetHandler server-status
</Location>
Кроме этого, надо установить какое-то ограничение по доступу (паролем, ай-пи адресом и т.п.).
Для того, чтобы все могли смотреть эту информацию, необходимо привести настройки к следующему виду:
<Location /server-status>
SetHandler server-status
Order allow,deny
Allow from all
</Location>
После чего остается только перезагрузить настройки Apache:
sudo /etc/init.d/apache2 reload
После этих нехитрых действий вы можете перейти по адресу www.vash_domen.com/server-status и увидеть всю необходимую информацию.
Правильная настройка mod_status
В Апаче есть такой архиполезный модуль, под названием mod_status. Он может показывать, какие запросы исполняются в данный момент и сколько каждый запрос тратит ресурсов сервера, сколько расходуется CPU, с какого ip пришёл запрос, ну и конкретный урл исполняемого запроса. Всё это очень хорошо знать вам, хозяину сервера, но с другой стороны, совсем не полезно светить эти данные всем желаютщим их посмотреть. В Апаче, стоящем по умолчанию в Fedora Core, модуль уже установлен и есть пример конфигурации данного модуля, при включении которого данные как раз будут видны всем. Для юниксоида конечно не составит труда переделать настройки на защищённые, но для обычного нормального человека это может оказаться не так просто. Лично я ковырялся где-то месяц.
<VirtualHost *>
ServerName "status.server.com"
<Location />
SetHandler server-status
Order deny,allow
Deny from all
# ваши ип, с которых можно будет смотреть статус
Allow from 1.1.1.1
Allow from 2.2.2.2
# защита логином и паролем
AuthUserFile /home/www/domain.com/.htpasswd
AuthType basic
AuthName "Testing area"
Require valid-user
</Location>
</VirtualHost>
Этот текст надо прописать либо в главный конфиг апача, либо в какой-либо из подгружаемых файлов из директории conf.d. После этого, статистика будет показываться только с разрешенных ip и только по секретному урлу, для работы которого нужно сделать правильную DNS запись. Не забывайте, что для работы "VirtualHost *", нужно перед этим прописать "NameVirtualHost *". Также не забудьте включить сам модуль: ExtendedStatus On.
Apache Server Status в .htaccess
Включаем в разделе "Веб-сервер"\"Управление модулями" модуль mod_limitipconn. Вместе с ним включается mod_status.
Далее в .htaccess сайта sitename.ru прописываем:
<IfModule mod_status.c>
<Files server-status>
SetHandler server-status
Order Deny,Allow
Allow from all
</Files>
</IfModule>
|