Встроенные средства управления сервером. (apachectl, apxs)
Встроенные средства управления apache содержатся как в самом сервере, так и в отдельных скриптах, которые идут с сервером.
Простейшиие методы отладки и запуска сервера реализованы с помощью отдельных функций, которые вызываются запуском сервера с ключами.
httpd –l – показывает способ компилирования апача и встроенные модули.
httpd –h – онлайн-хелп,
httpd –x – запуск единственного клона сервера, обычно используется для отладки.
Скрипт apachectl – интерфейс контроля сервера, основной скрипт для корректного запуска/перезапуска сервера, особенно необходим/незаменим при использовании SSL. Формат:
Apachectl {start|stop|restart|startssl|configtest|status|fullstatus}
Скрипт apxs - APache eXtenSion tool – наиболее важный скрипт для инсталляции и добавления новых модулей к серверу. Пример использования:
$ apxs -i -a -c mod_foo.c
gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c
ld -Bshareable -o mod_foo.so mod_foo.o
cp mod_foo.so /path/to/apache/libexec/mod_foo.so
chmod 755 /path/to/apache/libexec/mod_foo.so
[activating module `foo' in /path/to/apache/etc/httpd.conf]
|
|
$ apachectl restart
/path/to/apache/sbin/apachectl restart: httpd not running, trying to st
art
[Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module foo_mod
ule
/path/to/apache/sbin/apachectl restart: httpd started
$ _
Logresolve – наиболее полезный модуль с точки построения статистики посещений и мониторинга популярности сервера и попыток его взлома, в простейшем виде из обычного лога он делает лог-файл с разрезолвленными именами, что значительно упрощает его анализ.
Глобальные разделы конфигурации.
Конфигурация сервера apache разбита на несколько основных разделов, как для удобства, так и для простоты парсинга файла.
1. Директивы, контролирующие работу сервера целиком - 'global environment'.
2. Директивы, контролирующие поведение дефолтного, или основного сервера, далее эти директивы распространяются как используемые по-умолчанию для всех виртуальных серверов.
3. Директивы виртуальных хостов, которые иерархически наследуют общие настройки и могут переопределять их.
Основные директивы глобальной конфигурации.
ServerType standalone (inetd)
Определяет тип сервера.
ServerRoot "/usr/local/httpd"
Путь к корневой директории сервера.
PidFile /usr/local/httpd/logs/httpd.pid
Путь к pid-файлу.
Timeout 300
Количество секунд которое ждет сервер перед отсылкой сообщения «сайт недоступен».
MaxKeepAliveRequests 200
Количество одновременно поддерживаемых запросов, рекомендуется ставить большим, но не ставить 0 – бесконечность.
MinSpareServers 1
MaxSpareServers 15
Параметры количества одновременно запускаемых серверов на каждый хост – первый не рекомендуют ставить 0, и не ставить достаточно большим из-за ограниченности памяти, второй – может быть достаточно большим.
|
|
StartServers 3
Минимальное количество запускаемых серверов, когда к сайтам нет никаких обращений.
MaxClients 256
Количество одновременно запросов клиентов, рекомендуется ставить максимум –256.
Listen 80
Порт. Стандартный порт для HTTP – 80, альтернативный – 8080.
Далее идет секция модулей, менять в которой что-либо необходимо только при добавлении новых модулей.
User httpd
Group httpd
Пользователь и группа процесса. (по умолчанию обычно - nobody)
ServerAdmin www@univ.kiev.ua
Далее идут настройки корневого хоста.
ServerName www.univ.kiev.ua
DocumentRoot "/usr/local/httpd/www.univ/www"
<Directory />
Options FollowSymLinks Indexes IncludesNOEXEC
AllowOverride All
</Directory>
Далее идут настройки виртуальных хостов.
Примеры
1.
<Directory "/usr/local/httpd/www.univ/www">
Options FollowSymLinks Indexes IncludesNOEXEC
AllowOverride All
Order allow,deny
Allow from all
</Directory>
2.
<Directory /usr/local/httpd/www.icc/www/squid/>
Options FollowSymLinks Indexes
AllowOverride All
Order allow,deny
Deny from all
allow from icc.univ.kiev.ua
AuthType Digest
AuthDigestFile /usr/local/httpd/www.icc/www/squid/.htaccess
AuthName "ICC Secret Area. Users Control"
require valid-user
satisfy any
</Directory>
3.
<VirtualHost kiev.philosophy.ru>
ServerAdmin hostmaster@univ.kiev.ua
DocumentRoot /usr/local/httpd/www.philosophy/www
ServerName kiev.philosophy.ru
ErrorLog /usr/local/httpd/www.philosophy/log/error_log
CustomLog /usr/local/httpd/www.philosophy/log/access_log combined
AddType "text/html;charset=koi8-r".html.htm
</VirtualHost>
Вспомогательные скрипты – просмотр и ротация логов, статистика посещений.
Ротация логов и их резолвинг может быть реализован с помощью стандартных средств сервера, для apache это logresolve и logrotate.
Кроме этого вы можете захотеть написать свои собственные скрипты, на пример на языке bash которые автоматизируют вашу работу. Пример:
### Going to start log cutting
for i in `ls /usr/local/httpd/`;
do
if [ -f /usr/local/httpd/$i'/log/access_log' ]; then
/usr/bin/tail -1000 /usr/local/httpd/$i'/log/access_log' > /usr/local/httpd/$i'/log/ttt'
cp /usr/local/httpd/$i'/log/ttt' /usr/local/httpd/$i'/log/access_log'
rm /usr/local/httpd/$i'/log/ttt'
fi
done
Кроме этого могут быть использованы программы третьих сторон, различные варианты, в том числе и бесплатные и с открытым исходным кодом, доступны в большом количестве в Internet, как например одна из наиболее распространенных программ – webalizer генерирует очень полезную и наглядную статистику, написана на языке С и поэтому достаточно быстро работает. Кроме этого, лог-файлы вам все равно придется удалять (или ротэйтить), поскольку довольно быстро они займут все свободное место на диске, а иметь статистику за год-два всегда полезно для отслеживания динамики развития и популярности сайта.