Конфигурация и управление веб-серверами

 

Встроенные средства управления сервером. (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 генерирует очень полезную и наглядную статистику, написана на языке С и поэтому достаточно быстро работает. Кроме этого, лог-файлы вам все равно придется удалять (или ротэйтить), поскольку довольно быстро они займут все свободное место на диске, а иметь статистику за год-два всегда полезно для отслеживания динамики развития и популярности сайта.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: