Установка Mod_status (Server-status) — модуль Apache

Author Автор: Роман Чернышов    Опубликовано: 15 декабря 2011

По мере роста веб проекта растут нагрузки на сервер, увеличивается объем трафика, потребление памяти и нагрузка на CPU. Чаще всего на одном сервере располагается сразу несколько сайтов, порой крупных сайтов и вычислить какой именно сайт или скрипт нагружает всю систему порой очень сложно. Для этого хорошую службу может послужить модуль Apache — Mod_status (Server-status), который отображает всю доступную информацию о выполняемых скриптах в режиме реального времени. таким образом можно без особого труда и усилий вычислить тот процесс, скрипт, который потребляет наибольшие количество ресурсов.

Установка mod_status

Перед установкой модуля, желательно проверить как скомпилирован apache, с этим модулем или без. Для этого в командной строке вашего SSH (Putty) вводим

apachectl -l

Результат может быть примерно следующим:

Compiled in modules:
  core.c
  mod_log_config.c
  mod_logio.c
  prefork.c
  http_core.c
  mod_so.c
root@:~#

Как видно в данном случае в списке нет нашего модуля. В таком случае в конфиге apache придется дописать на одну строчку больше (или просто раскомментировать).

Идем в конфиг апача, если у вас ОС FreeBSD, это:
/etc/httpd/conf/apache.conf
если под ОС Debian:
/etc/apache2/apache2.conf (/etc/apache2/mods-available/status.load, /etc/apache2/mods-available/status.conf)

Добавляем следующие строки:

# Подключение модуля mod_status к Apache
LoadModule status_module /usr/lib/apache/mod_status.so
 
# Настройка URL адреса и прав доступа
# В этом примере данные mod_status будут доступны
# в браузере по адресу: имя или ip сервера/server-status
# Только с IP 127.0.0.1
 
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
 
# ExtendedStatus - отображать расширенную информацию
# (немного медленнее, но информативнее)
# Доступно с версии Apache 1.3.2 и выше
# Допустимые значения: On или Off, по умолчанию - Off
ExtendedStatus On
 
# SeeRequestTail - отображать первые (Off) или последние (On) 63 символа запроса
# К сожалению, весь запрос вывести не удастся
# Доступно с версии Apache 2.2.7 и выше
# Допустимые значения: On или Off, по умолчанию - Off
SeeRequestTail Off

На этом все настройки завершены, все предельно просто. После внесения всех изменений в конфиг, следует перезагрузить Apache.
FreeBSD: apachectl restart
Debian: /etc/itit.d/apache restart

Анализ данных статистики Mod_status (Server-status)

Для просмотра статистики по запущенным скриптам, перейдите по ссылке, на локальной машине (denwer):

http://127.0.0.1/server-status

На сервере расположенном в сети:

http://youdomain.ru/server-status

Дополнительные параметры вызова страницы статистики:

Вывод данных в авто-режиме:
http://127.0.0.1/server-status?auto
 
Автоматическое обновление данных каждые N секунд
N - целое число секунд
http://127.0.0.1/server-status?refresh=N
 
Обновление данных каждые 10 секунд:
http://127.0.0.1/server-status?refresh=10

Кроме всего добавлю еще один момент, касаемо настройки mod_rewrite в .htaccess, дело в том, что страница статистики может попросту не открыться, если у вас в .htaccess прописаны определенные правила переадресации запросов.

На примере CMS WordPress, нужно добавить одну строку:

# 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

Данный пост лишь собрание обрывков материала из малой части тех статей что выдает гугл на этот запрос, но все же я постарался собрать в одном месте немного больше информации на данную тему. Надеюсь кому-то пригодиться.

Оставить комментарий

Автор блога
Чернышов Роман
Роман Чернышов
Веб-разработчик, Full Stack
Senior, Architector
PHP, JavaScript, Python, HTML 5, CSS 3, MySQL, Bash, Linux Admin
Заказать работу
предложить оффер

Последние вопросы
Список вопросов
Последние комментарии
Меню

Archive

Мои проекты
Insurance CMS Love Crm CMS Совместные покупки Мой PHP Framework Хостинг для моих клиентов Лицензии на мой софт и поддержка