mod_status модуль статистики для Apache

Обычно рост сайта проходит несколько этапов в плане хостинга. Сначала сайт начинает вырастать из шареда. Начинается тюнинг.

Здесь проблема в средствах диагностики. Фактически диагностика на большинстве шаред хостеров это доступ к логам, если есть. Ну и письма счастья о перегрузке аккаунта. В wordpress есть замечательный инструмент это плагин wp-tuner, но сегодня не о нем. Затем таки проект должен перемещаться с шареда на премиум аккаунт как например у Jino. Либо на VDS. У меня это был VDS, потом начинает путешествие по тарифам VDS. В какой то момент я понял, что экстенсивный путь слишком ресурсо- и денежно- емок. Надо разбираться что же грузит сервак. На VDS есть удобный инструмент для диагностики нагрузки Apache .

Это модуль mod_status . В чем его замечательность? Он показывает какие процессы запущены в текущий момент, какие скрипты выполняются, с каких IP идут запросы. Вобщем если сайт посещаемый, возможность установить mod_status есть, то это нужно сделать обязательно.

Процесс установки можно разделить на следующие этапы:

1. Включить модуль
2. Открыть доступ.
3. Ограничить доступ.
4. Если у вас wordpress ( или другая cms с включенным mod_rewrite ) прописать правило для mod_rewrite.
5. Перезапустить сервер.

Теперь подробнее:

1. Включаем модуль в файле httpd.conf это файл настройки Apache. Обычно он лежит в usr/local/etc . Для этого просто ищем строчку содержащую что-то типа #LoadModule mod_status.so , удаляем решетку, т.е. снимаем комментирование со строки загрузки модуля.
2. Где то в том же файле httpd.conf прописываем следующие строки

# включаем вывод модуля
ExtendedStatus On


SetHandler server-status
# это собственно ограничение доступа
Order Deny,Allow
Deny from all
# вместо xxx.xxx.xxx.xxx прописываете IP
# которых вы хотите смотреть статистику
Allow from xxx.xxx.xxx.xxx

Отдельно хочется остановиться на ограничении доступа. Вы же не хотите чтобы все могли посмотреть статистику вашего сервера. Поэтому и надо ограничить к ней доступ. Я делаю это ограничивая IP с которых можно посмотреть. Но есть способ и с паролями. Ваш IP можно посмотреть в куче мест. Например здесь 2ip.ru . Не забывайте, если у вас нет постоянного IP ( так как правило и бывает ), то есть смысл прописать не весь IP полностью а вашу подсеть. То есть вместо 111.222.333.444 например написать 111.222.333.
После этих манипуляций обычно нужно перезагрузить Apache ( или в ISPManager нажать перезагрузить ) и зайти на страницу статистики. http://yoursite.ru/server-status.

3. На самом деле подобных описаний mod_status в Интернете полно. Я сделал как написал сам и попытался зайти на страницу статистики. Но вместо статистики вордпресс показал мне Ошибку 404. Оказалось это из-за включенного mod_rewrite. Вобщем идите в корень где у вас установлен wordpress. Найдите там файл .htaccess, а в нем блок

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

Нужно поправить его так:

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !=/server-status
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

После этого статистика стала доступна. Что там где я описывать не буду. Вроде и так должно быть понятно. А если не понятно то погуглите по mod_status.